2017-08-28 8 views
0

このスクリプトは動作しますが、どのようにしてjavascriptを変更すれば誰でも知っているので、// line1の 'var aud'は現在のオーディオ再生です - >その時点で7つのオーディオクリップが再生されています)、これについての何か?おかげjavascript変数の現在のオーディオクリップの再生方法

<script> 
var aud = document.getElementById("myAudio"); //line1 
aud.onplay = function() { 
var aud1 = document.getElementById("myAudio1"); 
aud1.currentTime = 0; 
aud1.pause(); 
}; 

</script> 
+0

あなたはループを使用しているはずです... – Rayon

+0

は、オーディオが再生されたときにイベントリスナーを設定し、現在のオーディオとして 'this'を使用します。 –

+0

Nイワノフ - 例を挙げてください。ここの学習者だけ! –

答えて

0
<script type="text/javascript"> 
    var aud = document.getElementById("myAudio"); //line1 
    var audio = [] 
    for (var i = 1; i <= 7; i++){          
     aud.onplay = function() { 
     var audio[i] = document.getElementById("myAudio"+i); 
     audio[i].currentTime = 0; 
     audio[i].pause(); 
     }; 
    } 

</script> 

は、これは動作するはずです。もしそうでなければコメントを共有してください!

0

var audios = document.getElementsByTagName('audio'); 
 
console.log(audios) 
 
for(var i in audios) 
 
if(audios.hasOwnProperty(i)){ 
 
    var t = audios[i]; 
 
    t.onplay = function(){ 
 
    alert(t.innerHTML) 
 
    } 
 
}
<audio controls=""> 
 
    <source src="https://www.w3schools.com/tags/horse.ogg" type="audio/ogg"> 
 
    <source src="https://www.w3schools.com/tags/horse.mp3" type="audio/mpeg"> 
 
    Your browser does not support the audio element. 
 
</audio><audio controls=""> 
 
    <source src="https://www.w3schools.com/tags/horse.ogg" type="audio/ogg"> 
 
    <source src="https://www.w3schools.com/tags/horse.mp3" type="audio/mpeg"> 
 
    Your browser does not support the audio element. 
 
</audio><audio controls=""> 
 
    <source src="https://www.w3schools.com/tags/horse.ogg" type="audio/ogg"> 
 
    <source src="https://www.w3schools.com/tags/horse.mp3" type="audio/mpeg"> 
 
    Your browser does not support the audio element. 
 
</audio>

0

イベントをトリガした方1 console.logすべてのオーディオ要素のイベントリスナーを追加し、このコードでそれをする必要があります。その場合は、イベントをトリガしたオーディオ要素で何をしたいかを行います。

var aud = document.getElementsByTagName("audio"); 
aud.onplaying = function() { 
    console.log(this); 
    var playingAudio = this; 
    playingAudio.pause(); 
} 
+0

あなたのお返事ありがとうございます。それらをすべて見てください... –

+0

@ watchglass49どちらか正しい答えとしてマークすることを忘れないでください:) – moidol

+0

ありがとうmoidol、それは良いですね。本当に私がやろうとしているのは、7つのナビゲーションリンクがあり、オーディオクリップが再生されている7つのナビゲーションリンクのうちのいずれかをオンマウスオーバーするときです。しかし、一度に複数のクリップをオンマウスオーバーすると、一度に複数のオーディオクリップが再生される=エンドユーザーにとっては迷惑になる。あなたがonmouseoutならaudioclipを止めるonmouseout関数でこれを改良しましたが、私が本当に好きなのは、2番目のクリップがonmouseoverされていない限り、再生を終了する最初のクリップです。だから、新しいオーディオ/ナビゲーションリンクでマウスオーバーすると、現在再生している以外のすべてのオーディオクリップが停止します。それはかなり複雑です。 –

関連する問題