私は、ボタンをクリックするとオーディオファイルが開始/停止するLaunchpadを作成しています。私はこれが働いているが、複数のオーディオファイルを追加しようとすると、互いに重なり合うことを拒否します。第1オーディオファイルが再生されているときは、第2オーディオファイルは再生されません。これを稼働させる方法はありますか?以下は2つのボタンの例で、2つの別々のオーディオファイルがリンクされています。これらのオーディオファイルを重ねて、プロジェクトが完成したら(64オーディオファイル/ボタン)、複数のオーディオファイルをまとめて独自のトラックを作成することができます。どのように変数(オーディオ)を重ねるのですか?
JS:
var one = new Audio(); one.src = "files/audio/one.wav"; one.loop = true;
var two = new Audio(); two.src = "files/audio/two.wav"; two.loop = true;
var isPlaying = false;
function manage1(){
if(isPlaying){
one.pause();
isPlaying = false;
one.currentTime = 0;
}
else{
one.play();
isPlaying = true;
one.currentTime = 0;
}
}
function manage2(){
if(isPlaying){
two.pause();
isPlaying = false;
two.currentTime = 0;
}
else{
two.play();
isPlaying = true;
two.currentTime = 0;
}
}
HTML:
<img class="item" src="files/button.png" onclick="manage1();"/>
<img class="item" src="files/button.png" onclick="manage2();"/>
それは機能します!あなたはお元気です。私は64オーディオファイルを使用する代わりの方法について頭を悩ますことはできません。私はJSに新しいものであることを '[id]'と '[i]'に理解していません。あなたが2つまたは3つのオーディオファイルを使用する例であなたの答えを更新することができれば、私はそこからそれを動かすことができるだろうと確信しています。もしそうでなければ、とにかくありがとう、あなたは大きな助けになりました。 –
私はこれに対する完全な解決策で私の答えを編集しました。私はそれを少し説明しましょう:あなたがしなければならないことは、すべてのソースを 'mySources'配列の中に置くことだけです。 'createAudio()'関数は、 'for'ループのおかげで必要な時間をexacltyと呼びます。すでにわからない場合は、「Javascriptで配列」を読んでください。複数の情報を同じ変数の中に格納する方法です。さまざまな情報にアクセスするには、変数myArray(2)のように検索するためのインデックスを与えます。 'myArray'から3番目の要素を返します。 – Zenoo
それは私がそれの周りに私の頭を手に入れるのを助けたそしてそれは素晴らしい!しかし何らかの理由で、最後の1つが機能しません。 Chromeのコンソールでエラーが表示される:_Uncaught(約束)DOMException:要素にはサポートされていないソースがあります。 @ index.htmlを管理してください:28 onclick @ index.html:74_アイデアはありますか? –