1

javascriptを介して音楽を再生するようにHTMLでいくつかのオーディオ要素を作成しようとしています。

これが私のhtmlです:

<div id="pixelbutton" onClick="musicplay1()"> </div>

<audio id="song1" src="audio/ruins.wav" autostart=false hidden=true> </audio>

そして私のJavascript:

function musicplay1() {
var song1 = document.getElementById("song1");
song1.setAttribute('autostart', 'true');
}

音声は正当な理由があるので、「ああ、本当に!?Webページに音を入れているのですか?それは本当に迷惑です」と私を惜しまないでください。コメント。

質問は次のとおりです。HTMLオーディオタグの再生を制御する関数をJavaScriptで実行可能に作成するにはどうすればよいですか。

私はJavaScriptにかなり慣れていないので、どんな助けでもありがたいです。

4

1 に答える 1

0

あなたは質問していませんが、改善すべき点がいくつかあります。

  • autostarthiddenはブール属性ですが、それはブール変数のように扱う必要があるという意味ではありません。属性が存在する場合はオンと見なされ、そうでない場合はオフと見なされます。hidden属性はありません。属性が設定さ<audio>れている場合にのみ要素が表示されます。controlsさらに、使用しているオーディオの種類をブラウザに伝える必要があります。したがって、オーディオタグは次のようになります。
<audio id="song1" src="audio/ruins.wav" type="audio/x-wav" />
  • 1 つのインスタンスに対してのみ機能する関数を作成するのは悪い習慣です。をパラメーターとして渡す方がよい1ため、次のようになります。
<div id="pixelbutton" onClick="musicplay(1);"> </div>
  • 属性を設定するだけでは、autostartおそらく自動的に開始されません。代わりに、.play()メソッドを使用してください。これと上記のポイントにより、次のことが得られます。
function musicplay(id) {
    document.getElementById('song'+id).play();
}
  • 最後に、私が最後に確認してから変更がない限り、WAV をサポートしているのは IE と Firefox のみで、Chrome はサポートしていません。

お役に立てれば。

于 2012-10-21T23:21:26.897 に答える