Web Audio APIを使用して音楽用のカスタムWebプレーヤーを作成しようとしていますが、音声のデコードに問題があります。Cachable/decodeAudioDataでAudioBufferが長くかかる
AudioContext.decodeAudioData関数を使用して、バックエンドからArrayBufferとして.mp3を取り出し、デコードしています。
const resp = await fetch(url);
const raw = await resp.arrayBuffer();
const audioBuffer = context.decodeAudioData(raw);
AudioBufferをIndexedDBにキャッシュしようとしていますが、クローン可能ではありません。私のデバイスでは通常のmp3で約10秒かかります。かなり長いです。プリフェッチと「プリデコード」を除いて、曲間の待ち時間を長くすることを防ぐための選択肢はありますか?
AudioBuffer
データをストリームとして取り出してデコードすることはできませんか? – Nit
javascriptのクロックが非常に不正確であるため、部分的にデコードするのはかなり複雑なようです。私はそれを試しましたが、私はオーディオの断片の間に亀裂を止めることができませんでした。 "ArrayBufferに含まれるオーディオファイルのデータを非同期にデコードします。この場合、通常、ArrayBufferはresponseTypeをarraybufferに設定した後、XMLHttpRequestの応答属性からロードされます。オーディオファイル。 https://developer.mozilla.org/de/docs/Web/API/AudioContext – Lucas