Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML5/JS选择合适音频源的简单方法是什么?_Javascript_Html_Audio - Fatal编程技术网

Javascript HTML5/JS选择合适音频源的简单方法是什么?

Javascript HTML5/JS选择合适音频源的简单方法是什么?,javascript,html,audio,Javascript,Html,Audio,当您有这样一个简单的音频标签时: <audio id="audio45" preload="auto" src="audio.ogg" controls=""></audio> 这将适用于Opera、Firefox、Iceweasel,可能还有Konqueror。但是当你为IE浏览器、Safari等玩得好的时候,你需要更多的资源 <audio id="audio45" preload="auto" controls=""> <source src=

当您有这样一个简单的音频标签时:

<audio id="audio45" preload="auto" src="audio.ogg" controls=""></audio>
这将适用于Opera、Firefox、Iceweasel,可能还有Konqueror。但是当你为IE浏览器、Safari等玩得好的时候,你需要更多的资源

<audio id="audio45" preload="auto" controls="">
  <source src="audio.ogg" type="audio/ogg" />
  <source src="audio.mp3" type="audio/mpeg" />
</audio>


但这样,audio45.src仍然是空的。获取当前浏览器为播放机选择的受支持源的简单方法是什么?我正在寻找一种可以编写一次并适用于所有音频动态事件的方法。

尝试
document.getElementById('audio45')。currentSrc
。从HTML5规范(草案)开始:

media.currentSrc

返回当前媒体资源的地址

当没有媒体资源时,返回空字符串

currentSrc IDL属性最初是空字符串。其值由下面定义的资源选择算法更改

注意:有两种方法可以指定媒体资源、src属性或源元素。该属性覆盖元素

另请注意:

注意:当源元素已经插入到视频或音频元素中时,动态修改源元素及其属性将无效。要更改正在播放的内容,只需直接使用media元素上的src属性,可以使用canPlayType()方法从可用资源中进行选择。通常,在解析文档后手动操作源元素是一种不必要的复杂方法


这太棒了,正是我需要的!我希望——但我自己并没有发现——它可以这么简单地完成。感谢您详细介绍canPlayType()方法。我想在编写一个可能涉及手动浏览音频DOMs子对象的小检测例程之前,我会问一下。
<audio id="audio45" preload="auto" controls="">
  <source src="audio.ogg" type="audio/ogg" />
  <source src="audio.mp3" type="audio/mpeg" />
</audio>