html5 ページに単純な html オーディオ タグを持つ 10 個のオーディオ プレーヤーがあります。jquery、特別なオーディオ js プラグインなどはありません...
現在のプレーヤーがプレイしているときに他のすべてのプレーヤーを一時停止する簡単なスクリプトを js に持っている人はいますか?
シンプルなオーディオ HTML コードを維持したいので、js プラグインを使用したくありません。
html5 ページに単純な html オーディオ タグを持つ 10 個のオーディオ プレーヤーがあります。jquery、特別なオーディオ js プラグインなどはありません...
現在のプレーヤーがプレイしているときに他のすべてのプレーヤーを一時停止する簡単なスクリプトを js に持っている人はいますか?
シンプルなオーディオ HTML コードを維持したいので、js プラグインを使用したくありません。
イベント委任を使用できます。キャプチャ フェーズで再生イベントをリッスンし、すべてのビデオ ファイルを一時停止しますが、ターゲット ファイルは一時停止しません。
document.addEventListener('play', function(e){
var audios = document.getElementsByTagName('audio');
for(var i = 0, len = audios.length; i < len;i++){
if(audios[i] != e.target){
audios[i].pause();
}
}
}, true);
うまくいかなかった以前の両方の回答を混ぜ合わせて、私はそれを使用しました。追加&& window.$_currentlyPlaying != evt.target
したばかりで、すべてが機能しています。また、オーディオタグのこれとその他のグッズで要点を作成しました。javascript-audio-tags
window.addEventListener("play", function(evt)
{
if(window.$_currentlyPlaying && window.$_currentlyPlaying != evt.target)
{
window.$_currentlyPlaying.pause();
}
window.$_currentlyPlaying = evt.target;
}, true);
ループしたくない場合は、このソリューションを試すこともできます
var previuosAudio;
document.addEventListener('play', function(e){
if(previousAudio && previousAudio != e.target){
previousAudio.pause();
}
previousAudio = e.target;
}, true);