HTML5媒体元素检测编解码器的支持情况
虽然媒体元素可以实现音频和视频功能,但是并不是所有浏览器都支持video标签和audio标签的所有编解码器,这意味着开发人员必须提供很多歌媒体来源。在JavaScript API中能够检测浏览器是否支持某种格式和编解码器。这两个媒体元素都有一个canPlayType()方法,该方法接收一种格式/编解码器字符串,返回”probably”、”maybe”或者””(空字符串)。空字符串是假值,而”probably”和”maybe”都是真值,所以if条件测试中可以转成true,所以在if中可以作为条件进行判断。检测格式/编解码器的方法如下
JavaScript代码
if(audio.canPlayType("audio/mpeg")){ //进一步编写 }
如果给canPlayType()传入了一种MIME类型,则返回值很可能是”maybe”或者空字符串。这是因为媒体文件本身只不过是音频或者视频的一个容器,真正决定文件能否播放的还是编码格式。在同时传入MIME类型和编码器的情况下,可能性就会增加,返回的字符串会变成”probably”。小例子如下
HTML代码
<audio src="meng.ogg" id="myAudio"></audio>
JavaScript代码
var audio = document.getElementById("myAudio"); //很可能"maybe" if(audio.canPlayType("audio/mpeg")){ //进一步编写 } //可能是"probably" if(audio.canPlayType("audio/ogg; codecs=\"vorbis\"")){ //进一步编写 }
HTML5媒体元素之Audio构造函数
在原生的JavaScript中,有一个构造函数Audio,可以在任何时候播放音频。从都是DOM元素的角度出发,Audio对象和Image对象很类似,但是Audio对象不用像Image对象那样必须插入到文档中。只要创建一个新实例,传入音频源文件即可。小例子如下
JavaScript代码
var audio = new Audio("meng.mp3"); audio.addEventListener('canplaythrough',function(event){ audio.play(); }, false);
创建新的Audio实例即可开始下载指定的文件。下载完成后,调用play()方法就可以播放音频。在iOS中,调用play()时会弹出一个对话框,得到用户的允许后才能播放。如果想在一段音频播放后再播放另一端音频,必须在onfinish事件处理程序中调用play()方法。
以上就是HTML5实战与剖析之媒体元素(4、检测编解码器的支持和Audio构造函数)的内容,更多相关内容请关注PHP中文网(www.gxlcms.com)!
查看更多关于HTML5实战与剖析之媒体元素(4、检测编解码器的支持和Audio构造函数)的详细内容...