1

<audio>デフォルトのコントロールを使用すると、ページが複数ある場合に問題が発生します。カスタム コントロールの詳細な作成はまだテストしていません。

カスタム コントロールには、「一時停止」に変わる「開始」ボタンがあります。オーディオを一時停止しても問題ありません。ただし、ページの 2 番目のオーディオ コントロールに移動すると、最初のオーディオ コントロールが一時停止している間は再生されません。最初の 1 つを最後まで再生すると、[再生] ボタンをクリックすると 2 つ目が再生されます。

どこかに「停止」機能はありますか?もしそうなら、それは私がカスタムコントロールを作成する必要があることを意味し、私はそれを行うことができますが、最初のコントロールの再生を実際に「停止」するために使用されるイベントが見つかりませんでした. また、一時停止しなければならず、2 番目の音声を再生する前に停止ボタンも押す必要があることをユーザーが理解するのは、本当に混乱を招く可能性があります。

前のオーディオが一時停止されているかどうかを確認し、最初のオーディオを停止するかリセットしてから、2 番目のオーディオを再生するスクリプトを使用できることを願っています。

何か案は?ありがとう、Linda PS 私は JavaScript が苦手なので、誰かがスクリプトを手伝ってくれたら幸いです。

4

2 に答える 2

1

ついに。これは機能します。

<script type="text/javascript">
setTimeout(function() {
    var myAudio = document.getElementsByTagName('audio')[0];
    var myAudio1 = document.getElementsByTagName('audio')[1];
    myAudio1.addEventListener('play', function(){
        myAudio.pause();
    }, false);

    myAudio.addEventListener('play', function(){
        myAudio1.pause();
    }, false);
},1000);

于 2010-09-21T15:48:03.987 に答える
0

モバイル Safari で次のコードのエラーが表示されます: INVALID_STATE_ERR: DOM Exception 11 INDEX_SIZE_ERR: DOM Exception 1



setTimeout(function() {
document.getElementById('audio_3').addEventListener('play', function(){
document.getElementById('audio_4').currentTime = 0;
document.getElementById('audio_4').pause();
}, false);

document.getElementById('audio_4').addEventListener('play', function(){
document.getElementById('audio_3').currentTime = 0;
document.getElementById('audio_3').pause();
}, false);
},1000);

于 2010-09-20T16:06:31.533 に答える