これはChromeの問題で、他のブラウザで正常に動作します。Google Chrome、audio、setTimeout、オーディオsrcを置き換え、中音域を再起動
私はウェルカムメッセージを再生するスピーカーをクリックします。ウェルカムメッセージが終了していない場合は、終了するまでチェックを続けてから、ソースを別のメッセージに変更します。私は、新しいメッセージを聞くために、再度スピーカーをクリックすると
は、このメッセージが起動し、数秒後に停止し、再び開始し、その後、停止します(私の推定値は、そのメッセージの期間が渡されたとき、それが停止していることである)
私のJavaScriptで<audio id="shop_audio" preload="auto" type="audio/mpeg" src="/audios/helper/shop/en/welcome.mp3"></audio>
<p id="shop_speaker">
<i class="fa fa-volume-up"></i>
</p>
:私のHTMLで
準備
ドク:
$("#shop_speaker").click(function(){
document.getElementById("shop_audio").play();
});
その後
:
$(window).load(function(){
sl.utils.t_shopInstructions = setTimeout(sl.shop.audio.setAudio, 5000, 0);
});
そして:
sl.shop.audio={
setAudio: function(which){
clearTimeout(sl.utils.t_shopInstructions);
var audio = document.getElementById("shop_audio");
if(audio.paused==true){
sl.shop.audio.newSrc(which);
}else{
sl.utils.t_shopAudioPlaying = setInterval(sl.shop.audio.waitForPaused, 500, which);
}
},
waitForPaused: function(which){
if(document.getElementById("shop_audio").paused==true){
clearInterval(sl.utils.t_shopAudioPlaying);
sl.shop.audio.newSrc(which);
}
},
newSrc: function(which){
document.getElementById("shop_audio").src = '/audios/helper/shop/en/help_instruction_'+which+'.mp3';
}
}
もクロムを除いて、どこでも動作しますバリアント: は(私がしたsetIntervalがトラブルを起こしていたことを考え、および/またはそのクリア)
sl.shop.audio={
setAudio: function(which){
clearTimeout(sl.utils.t_shopInstructions);
var audio = document.getElementById("shop_audio");
if(audio.paused==true){
sl.shop.audio.newSrc(which);
}else{
(function looping(){
clearTimeout(sl.utils.t_shopAudioPlaying);
if(audio.paused==false){
sl.utils.t_shopAudioPlaying=setTimeout(looping, 500);
}else{
sl.shop.audio.newSrc(which);
}
})()
}
},
newSrc: function(which){
document.getElementById("shop_audio").src = '/audios/helper/shop/en/help_instruction_'+which+'.mp3';
}
}
clearTimeout()
を別の場所に配置すると違いがあるので、私はそれを追求しましたが、結果は一貫していません。
私は今、すべてのclearTimeoutsを削除しました。何も違いはありません。問題はまったく同じです。
お寄せいただきありがとうございます!
私はあなたのコードの外観が好きです!はるかにエレガント。問題は消え去っていないという問題だけですが、最初のメッセージも中止され、再起動してから終了します。 (Google Chromeのみ!他の場所ではうまくいきません!!) – Daniela
@Danielaデモンストレーションのためにhttp://plnkr.coを作成できますか?オーディオの再生が終了したときにのみ、 'audio'の' src'を変更しようとしていますか? – guest271314
はい、もちろんです。他のブラウザは問題ありませんが、Chromeだけです。 – Daniela