3

特に 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 をロードすると取得できます。オンデマンドでファイルします。

...

そこに何かアイデアはありますか?

4