2017-02-15 7 views
0

私は次のコードを持っている:停止オーディオループのJavascript

var player = document.createElement('audio'); 
player.src = 'https://dl.dropbox.com/u/7079101/coin.mp3'; 
player.preload = 'auto'; 

    var url= 'http://www.businessdictionary.com/definition/update.html'; 

window.setInterval(function(){ 
    if($("*:contains(Update')").length > 0){ 
    console.log('New Update, playing sound...'); 
    player.play(); 
    } 
}, 5000); 

クレジット:ローレンスSwart

コードは素晴らしい作品、しかし、オーディオは永遠にループします。オーディオを1回再生させる方法はありますか?

+0

使用 'のsetTimeout()'の代わりに 'のsetIntervalの' – azs06

+0

私はあなたの助けを借りて私のホスト国の当局に何らかの問題を抱えているかもしれないので、これはコメントとして残されますが、その目的は、その中の' Update'を持つ要素がdocに追加された時をチェックすることです。この瞬間に音を鳴らしてo 'setInterval'がidを返すことを知っています。これはあなたがチェックしたときに[' clearInterval'](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearInterval)メソッドで使用されます。渡します。このようなイベントが複数あるのを待っている場合は、 '> 0'を'> current'に変更し、新たな正のイベントごとに 'current'をインクリメントします。 – Kaiido

+0

@キム・ジョンンあなたがいったんこのことを釘付けにしてしまえば...次の人を助けるための回答を投稿する...歓迎SO –

答えて

0

あなたはwindow.setIntervalを使用しています。これは、clearInterval()に電話するまで、player.play()への呼び出しを永久に繰り返します。

プレーヤーを1回再生するには、代わりにwindow.setTimeoutを使用することをおすすめします。

あなたはこれを試して 一度あなたのオーディオを再生すると、偽

にオーディオのループ属性を追加するためのsetInterval削除する必要が

var player = document.createElement('audio'); 
player.src = 'https://dl.dropbox.com/u/7079101/coin.mp3'; 
player.preload = 'auto'; 

    var url= 'http://www.businessdictionary.com/definition/update.html'; 

window.setTimeout(function(){ 
    if($("*:contains(Update')").length > 0){ 
    console.log('New Update, playing sound...'); 
    player.play(); 
    } 
}, 5000); 
+0

しかし、それは新しい解決策がサイトに現れたときに良い解決策でしたすでに再生されているため、スクリプトはもうオーディオを無効にすることはできません。私は必要なのはリスナーだと思う。ご協力いただきありがとうございます。 –

0

var player = document.createElement('audio'); 
player.src = 'https://dl.dropbox.com/u/7079101/coin.mp3'; 
player.preload = 'auto'; 
player.loop = false; 
var url = 'http://www.businessdictionary.com/definition/update.html'; 

// window.setInterval(function() { 
     if ($("*:contains(Update')").length > 0) { 
      console.log('New Update, playing sound...'); 
      player.play(); 
     } 
// }, 5000); 
+0

私はしましたが、残念ながらそれはうまくいきませんでした。とにかくThx。 –

+0

私はそれらの行にコメントすると、スクリプトは実行されません。 –

関連する問題