音视频标签(audio、video、embed)
- 音频
- audio标签
- 属性
- controls
- autoplay
- loop
- 使用方式
- 提示用户升级浏览器
- 浏览器不支持MP3格式
- 兼容低版本浏览器(embed标签)
- 视频
- vidio标签
- 兼容后的写法
- 其他事项说明
音频
audio标签
我们通常用audio标签来向页面中引入一个外部的音频文件。
音视频文件引入时,默认情况下不允许用户自己控制播放停止。
属性
controls
controls指定是否允许用户控制播放。
这个属性不是通过值来判断的,而是通过有没有,有这个属性就是允许,没有就是不允许。
autoplay
autoplay指定音频文件是否自动播放。
如果设置了autoplay,则音乐在打开页面时会自动播放。但是目前来讲,大部分浏览器都不会自动对音乐进行播放。
loop
loop指定音乐是否循环播放。
如果设置了loop,则音乐会循环播放。
使用方式
<audio src="./source/audio.mp3" controls autoplay loop></audio>
IE8及以下版本不支持audio标签,展示效果为控制台报错,界面看不出来有audio标签。
提示用户升级浏览器
除了通过src属性来指定外部文件的路径以外,还可以通过source来指定文件。所以还可以写成:
<audio controls>
<source src="./source/audio.mp3">
</audio>
但是此时,用户看到的效果和直接使用
<audio src="./source/audio.mp3" controls></audio>
是一样的,那么我们需要提示用户,这里是有音频播放的,因为浏览器版本问题,导致音频播放功能无法使用。可以写成:
<audio controls>
对不起,您的浏览器不支持播放音频!请升级浏览器!
<source src="./source/audio.mp3">
</audio>
如果浏览器支持audio标签,则会自动去找audio标签中的source,如果浏览器不支持audio标签,即浏览器识别不出audio标签和source标签,此时界面会现时“对不起xxx”这段文字。
浏览器不支持MP3格式
有些浏览器不支持mp3格式,而是支持ogg格式,所以以前为了解决兼容性问题,可以写成:
<audio controls>
对不起,您的浏览器不支持播放音频!请升级浏览器!
<source src="./source/audio.mp3">
<source src="./source/audio.ogg">
</audio>
这样,浏览器会先识别第一个source,识别不了mp3格式时,会去识别第二个sourse,如果可以识别ogg格式文件,就会播放对应的音频文件,如果仍然识别不了,才会显示“对不起xxx”这段文字。
兼容低版本浏览器(embed标签)
在老版本浏览器中其实是可以引入音频文件的(如IE8),只是体验不好,所以现在用到的不多:
<embed src="./source/audio.mp3" type="audio/mp3" width="300" height="100">
如果想兼容一些较低版本的浏览器,但是较高版本浏览器又希望用audio标签,那么可以通过以下方式实现:
<audio controls>
<source src="./source/audio.mp3">
<source src="./source/audio.ogg">
<embed src="./source/audio.mp3" type="audio/mp3" width="300" height="100">
</audio>
视频
vidio标签
我们通常用video标签来向网页中引入一个视频。
使用方式和audio基本上是一样的。
兼容后的写法
<video controls>
<source src="./source/video.webm">
<source src="./source/video.mp4">
<embed src="./source/video.mp3" type="audio/mp4">
</video>
其他事项说明
目前我们的例子,全部都是用的本地文件,所以用的都是相对路径。实际项目中,我们通常不会把音视频文件直接放在我们的服务器中,而是会购买一些第三方产品,把音视频文件放在那个服务器上,然后把路径引入过来。
还有一种方式:把我们的视频上传到一些如腾讯视频等服务器上,然后选择分享中的“复制通用代码”,把对应代码放在页面上,相当于是在页面上引入了一个腾讯视频的页面,访问的是腾讯的服务器,对我们的服务器就没有太大压力(引入方式是iframe标签)。