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

时间:2011-09-15 17:55:56

标签: javascript html5 audio

如果你有一个简单的无知音频标签,那么:

<audio id="audio45" preload="auto" src="audio.ogg" controls=""></audio>

您可以像这样复制源播放:

var playback = new Audio();
playback.src = document.getElementById('audio45').src;
playback.load();
playback.play();

这适用于Opera,Firefox,Iceweasel,可能是Konqueror。但是当为Internet Explorer,Safari等玩得很好时,你需要更多的资源。

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

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

1 个答案:

答案 0 :(得分:2)

试试document.getElementById('audio45').currentSrc。截至(草案)HTML5规范:

  

media.currentSrc

     

返回当前媒体资源的地址。

     

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

     

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

     

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

http://dev.w3.org/html5/spec/Overview.html#attr-media-src

另请注意:

  

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

http://dev.w3.org/html5/spec/Overview.html#the-source-element