我正在尝试制作一个适用于每个主要浏览器的 HTML5 音频播放列表:Chrome、Safari、Firefox、IE9+。但是,我不知道如何以跨浏览器兼容的方式更改源。
更新例如,更改<source>
标签的src
s 在 Chrome 中有效,但在 Safari 中无效。虽然下面使用@eivers88 的解决方案有效,但对我来说只是更改标签的scanPlayType
似乎更容易。谁能向我解释为什么我下面的代码可以在 Chrome 中运行,但不能在 Safari 中运行?<source>
src
JS:
var audioPlayer=document.getElementById('audioPlayer');
var mp4Source=$('source#mp4');
var oggSource=$('source#ogg');
$('button').click(function(){
audioPlayer.pause();
mp4Source.attr('src', 'newFile.mp4');
oggSource.attr('src', 'newFile.ogg');
audioPlayer.load();
audioPlayer.play();
});
HTML:
<button type="button">Next song</button>
<audio id="audioPlayer">
<source id="mp4" src="firstFile.mp4" type="audio/mp4"/>
<source id="ogg" src="firstFile.ogg" type="audio/ogg" />
</audio>
单击按钮后检查 HTML,<source src=""/>
Safari 中确实发生了变化,只是没有发出 HTTP 请求,因此文件没有被load()
编辑和play()
编辑。有人对此有任何想法吗?