特に iPhone で使用する HTML5 オーディオ プレーヤーを開発しており、EQ ビジュアライザーを動作させようとしています。私が見つけたものから、これを設定するには2つの方法があります:
XMLHttpRequest を使用してオンデマンドで mp3 ファイルをロードするもの:
var request = new XMLHttpRequest();
request.open('GET', 'sampler.mp3', true);
request.responseType = 'arraybuffer';
request.addEventListener('load', bufferSound, false);
request.send();
function bufferSound(event) {
var request = event.target;
var buffer = myAudioContext.createBuffer(request.response, false);
source = myAudioContext.createBufferSource();
source.buffer = buffer;
}
次に、source.noteOn 関数と source.noteOff 関数を使用して、オーディオの再生と一時停止を行います。このように作業することで、EQ の視覚化を進めることができます。しかし、再生を開始するには mp3 ファイルが完全にロードされるまで待たなければならず、これは私たちの状況では機能しません。
これを行うもう 1 つの方法は、<audio>
要素を既にページに配置し、次を使用して音声データを取得することです。
source = myAudioContext.createMediaElementSource(document.querySelector('audio'));
次に、オーディオ タグの再生および一時停止機能を使用します。これにより、ページが読み込まれるとすぐにメディアを再生できるため、読み込みの問題が解決されます... しかし、EQ の視覚化はなくなりました。
<audio>
どちらの方法も、Chrome (WIN) でテストすると EQ が表示されるため、タグからデータを取得できない iOS/iPhone 固有のものがあるようですが、mp3 をロードすると取得できます。オンデマンドでファイルします。
...
そこに何かアイデアはありますか?