以下の URL にリンクされているコードを探していましたが、どこにもアクセスできませんでした。ページ全体ではなく、小さな div にイベント ハンドラーを再割り当てすることしかできませんでした。これを調整して複数のサウンドをロードする方法がわかりません。
http://www.f1lt3r.com/w3caudio/web-audio-api/basic-examples/low-latency-playback-user-input.html
以下のコード例では、div をクリックしてもサウンドをトリガーできませんでした。ただし、このコードの方が見栄えがするので、学習目的でこれを変更したいと思います。
var context = new webkitAudioContext(),
buffer;
var playAudioFile = function (buffer) {
var source = context.createBufferSource();
source.buffer = buffer;
source.connect(context.destination);
source.noteOn(0); // Play sound immediately
};
var loadAudioFile = (function (url) {
var request = new XMLHttpRequest();
request.open('get', 'A.mp3', true);
request.responseType = 'arraybuffer';
request.onload = function () {
context.decodeAudioData(request.response,
function(incomingBuffer) {
playAudioFile(incomingBuffer);
}
);
};
request.send();
}());
// I added this & it doesn't work
var divElement = document.getElementById("divElement");
divElement.addEventListener("click", playAudioFile , false);
// END of code I added
オシレーターの作成方法と、フィルター/ゲインおよびその他のノードの接続方法を理解しています。ここまでは、API を使用する際の私の基準です。XMLHttpRequest プロセスとバッファーの作成を組み合わせると、混乱を招きます。バッファーとは何か、XMLHttprequest とは何かを理解していますが、何らかの理由で、再生のためにオーディオ ファイルをロードするプロセスが明確に思えません。HTML-5 のロック チュートリアルも読もうとしましたが、微調整できる作業 C&P コードがなければ、正しい軌道に乗っているかどうかはわかりません。ところで、抽象化されたライブラリを使用したくありません。APIを一から学びたい。ありがとう