5

Web Audio API を使用して、サーバー側のオーディオ ファイルを解読 (openpgp.js を使用) およびデコードする小さなプロジェクトに取り組んでいます。復号化されたファイルは、未加工のオーディオとしてクライアントに届きます。現在、オーディオファイルを再生できますsource.start(0)が、オーディオをGUIにダンプして、ユーザーが音量を調整したり、オーディオをシークしたりできるようにする簡単な方法はないようです。

AudioContextデコードされてバッファリングされたオブジェクトがありますcreateBufferSource

function playSound(decodedAudio) {
  var source = context.createBufferSource();
  source.buffer = decodedAudio;
  source.connect(context.destination);
  source.start(0);
}

生のオーディオを受信して​​いるためaudio.src = ...、オーディオ要素のようなものを単純に使用することはできません。それとも、明らかな何かを見落としているのでしょうか?
Web Audio API 内でこのデコードされたオーディオを目的の<audio>要素で適切に再生する方法はありますか?

理想的なフローは次のようになります...
1) ユーザーがクリックしてオーディオ クリップの再生を開始する
2) オーディオはサーバー側で復号化され、生のオーディオとしてクライアントに送信されます
3) オーディオはデコードされ、再生可能であり、シーク可能です。 ..等。

私が考えたい考えられる解決策
- オーディオ ファイルは 1 分から 60 分の範囲である可能性があるため、FileSystem API を使用してオーディオをファイルに書き込み、<audio>実際の再生に要素を使用します
- 一時停止のための独自の制御システムを作成します、スクラブ、およびボリュームを Web Audio API に追加

4

1 に答える 1

2

いい質問です!最も簡単な解決策は、デコードされたコンテンツをBlob.

これにより、属性を設定できますsrc

var blob = new Blob(decodedData, {type: "correct-mimetype/here"});
var url = URL.createObjectURL(blob);
audio.src = url;
于 2013-06-21T22:26:28.610 に答える