【发布时间】:2012-06-25 13:56:11
【问题描述】:
我正在尝试制作一个 HTML5 音频播放列表,它可以在每个主要浏览器中运行:Chrome、Safari、Firefox、IE9+。但是,我不知道如何以跨浏览器兼容的方式更改源。
已更新例如,更改 <source> 标签的 srcs 在 Chrome 中有效,但在 Safari 中无效。虽然下面使用canPlayType 的@eivers88 解决方案有效,但对我来说只是更改<source> 标签的srcs 似乎更容易。谁能向我解释为什么我下面的代码在 Chrome 中有效,但在 Safari 中无效?
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()ed 和 play()ed。有人对此有什么想法吗?
【问题讨论】:
标签: javascript jquery html safari html5-audio