0

我有一个 JavaScript 函数,可以在其中播放声音文件(使用 phonegap)。它通常工作正常,但我想img src在下载文件时将其更改为加载图标。但是,播放文件后会更改 src。

我试图添加+new Date().getTime()到 src 的末尾,但没有帮助。有什么想法吗?

function playSound(){


var img = $(this).prev();

img.attr("src", "css/images/ajax-loader.gif?"+new Date().getTime());


var url = "http://some.com/fanky.mp3";   
mediaTTS = new Media(url, onSuccessTTS(url), onErrorTTS);
mediaTTS.play();

}
4

2 回答 2

0

这可能是由于图像直到当前运行循环结束才重新绘制。如果Media.play()是阻塞,则在播放完成之前您可能看不到图像的变化。

要确认我的怀疑,请尝试以下代码:

function playSound(){
    var img = $(this).prev();
    img.attr("src", "css/images/ajax-loader.gif?"+new Date().getTime());
    setTimeout(function() {
        var url = "http://some.com/fanky.mp3";   
        mediaTTS = new Media(url, onSuccessTTS(url), onErrorTTS);
        mediaTTS.play();
    }, 100);
}
于 2012-09-04T22:06:32.190 回答
0

尝试删除 src 属性,然后使用不同的 src 再次添加

function playSound(){
  var img = $(this).prev();
  img.removeAttr("src").attr("src","css/images/ajax-loader.gif?"+new Date().getTime());
  var url = "http://some.com/fanky.mp3";   
  mediaTTS = new Media(url, onSuccessTTS(url), onErrorTTS);
  mediaTTS.play();
}
于 2012-09-04T22:07:27.930 回答