【发布时间】:2011-08-04 16:24:28
【问题描述】:
我正在使用 javascript 来动态地使用源信息填充音频标签。在 Chrome 中运行良好,但在 Safari 中,音频标签中的源信息会发生变化,但它会播放同一首歌曲。关于为什么会发生这种情况的任何想法?
【问题讨论】:
我正在使用 javascript 来动态地使用源信息填充音频标签。在 Chrome 中运行良好,但在 Safari 中,音频标签中的源信息会发生变化,但它会播放同一首歌曲。关于为什么会发生这种情况的任何想法?
【问题讨论】:
在 Safari 中,当您更改源时,您还必须在音频播放器上调用 .load() 以使其实际加载新源。
其他浏览器似乎不需要这个。
【讨论】:
您是否尝试过重新创建节点?
document.removeChild(document.getElementById("audio-player");
var dynamicAudio = document.createElement("audio");
dynamicAudio.name = "audio-player";
dynamicAudio.id = "audio-player";
var dynamicSound1 = document.createElement("source");
var dynamicSound2 = document.createElement("source");
var dynamicSound3 = document.createElement("source");
dynamicSound1.src = "http://www.chicagowebguru.com/audio/RainbowConnection.mp3";
dynamicSound2.src = "http://www.chicagowebguru.com/audio/RainbowConnection.ogg";
dynamicSound3.src = "http://www.chicagowebguru.com/audio/RainbowConnection.wav";
dynamicAudio.appendChild(dynamicSound1);
dynamicAudio.appendChild(dynamicSound2);
dynamicAudio.appendChild(dynamicSound3);
refNode = document.getElementById("message-container");
document.body.insertBefore(dynamicAudio,refNode.nextSibling);
或者你也可以使用 jQuery
【讨论】: