私は現在、非常に簡単に統合できる簡単なAudioJsスクリプトを使用していますが、同じページに複数のオーディオファイルがある場合、何かをして、前のファイルを最初に停止する必要なく聞いて...基本的に私は "すべてを停止する"と言うトグルが必要ですAudioJS:1ページあたりの時間でhtml5オーディオのみ再生
これを実装する方法についての任意のヘルプ?
ような機能のための一般的なトリックは、すべての上onplay
イベントをバインドすることですAudioJs
私は現在、非常に簡単に統合できる簡単なAudioJsスクリプトを使用していますが、同じページに複数のオーディオファイルがある場合、何かをして、前のファイルを最初に停止する必要なく聞いて...基本的に私は "すべてを停止する"と言うトグルが必要ですAudioJS:1ページあたりの時間でhtml5オーディオのみ再生
これを実装する方法についての任意のヘルプ?
ような機能のための一般的なトリックは、すべての上onplay
イベントをバインドすることですAudioJs
によって作成された各インスタンスの「演奏」私は
$.each($('audio'), function() {
this.pause();
});
を試みたが、これはボタンと状態を反転させませんプレーヤー;あなたが1つをプレイすると、今度はonplay
がトリガーされたプレーヤー以外のすべてのプレーヤーを一時停止させますが、audiojsはそのラッパーオブジェクトでオーディオイベントを提供しません(再生、一時停止などのメソッドを提供します)あなたができることです:各プレーヤーオブジェクトは対応するHTML5 <audio>
要素への参照を持ちます(これは実際にmp3を再生しています)。これを使用して直接element
プロパティを使用してバインドできます。すべてのプレイヤーに
1.bind onplay
allAud = a.createAll();
for(var i=0; i<allAud.length;i++)
{
allAud[i].element.onplay = function pauseOthers();
}
たら、2. onplayは、すべてのプレイヤーの<audio>
上でループをトリガーとイベントがpause()
方法
function pauseOthers() {
for(var j=0; j<allAud.length;j++)
{
if(allAud[j].element != this) //pause all except the one being played
allAud[j].pause(); // can also use `this.pause()` , but better let audiojs do that incase it's handling some play/pause animation
}
}
ラッパーaudiojsを使用して(トリガーされた以外のすべての一時停止
'document'のすべてのオーディオノードで' .pause() 'を呼び出してみましたか?あなたが質問で試した 'javascript'? – guest271314
AudioJSで作成したインスタンスごとに再生= falseを設定することができないため、Jqueryをそれぞれ試してみましたが、それらを停止できますが、AudioJS命令と競合します。 – Francesco
'AudioJS'を試していません。ライブラリは 'AudioContext'を使ってメディアを再生しますか? – guest271314