【问题标题】:change source to <audio> html5 element将源更改为 <audio> html5 元素
【发布时间】:2011-10-31 12:18:33
【问题描述】:

我正在构建一个 jquery/html5 音频播放器,但在将源更改为音频标签时遇到了一些问题。我实现的方法适用于除 IE9 以外的所有浏览器。

这是一个代码示例:

audio = $("<audio>").attr("id", "audioElement")
                        .attr("preload", "auto")
                        .appendTo(player);

function addMp3Source(sourceUrl) {
    audio.empty();
    var newSrc = $("<source>").attr("src", config.tracksURL + sourceUrl).appendTo(audio);
}

在 IE9 上,源正在改变,但是当我播放曲目时,播放的是旧声音。在其他浏览器上工作正常。

有什么想法吗?

【问题讨论】:

  • 也许您需要删除整个音频元素并添加一个带有新源的新元素作为解决方法。
  • 你在那里所做的只是清空&lt;audio&gt; 的html/children,你应该使用.remove()$('&lt;audio/&gt;'); 来创建一个新元素音频,这样你就可以摆脱旧元素的痕迹, :)
  • 所以我不能只更改源?我已经有一些对该音频标签的引用,如果我删除标签,我会丢失这些引用。

标签: javascript jquery html audio


【解决方案1】:
function addMp3Source(sourceUrl) {
    audio.empty();
    var newSrc = $("<source>").attr("src", config.tracksURL + sourceUrl).appendTo(audio);
    /****************/
    audio[0].pause();
    audio[0].load();//suspends and restores all audio element
    /****************/
}

【讨论】:

  • 谢谢。这种方法适用于 FF 10 中的 jQuery Mobile 1.0.1 和 Mac OS X 10.7 中的 Chrome 16,而其他几种方法则没有。但是,我收到了错误pause() is not a function。所以,我删除了audio[0].pause();,现在我修改后的音频源开始播放了:-)
猜你喜欢
  • 1970-01-01
  • 2012-03-23
  • 1970-01-01
  • 2011-11-18
  • 2015-03-28
  • 2016-06-06
  • 1970-01-01
  • 2012-09-01
  • 1970-01-01
相关资源
最近更新 更多