3

タイトルにあるように、サウンドを放出するオーディオノードがあり、それを2つの別々のGainNodeに接続し、それらをオーディオコンテキストの宛先に接続すると、サウンドは2倍の速度/ 2倍のピッチで再生されます(半分のサンプルが送信されたかのように)一方のゲインノードに半分のサンプルを、もう一方のゲインノードに半分のサンプルを追加します。時間も半分になります)。

ここで便利なjsfiddleを作成しました。サウンドファイルを黒い長方形のキャンバスにドラッグして、聞いてください。

// audioContext: Web Audio context
// decoded: decoded audioBuffer
// gainNode1, gainNode2: gain nodes
var bSrc = audioContext.createBufferSource();
bSrc.connect (gainNode1);
bSrc.connect (gainNode2);
gainNode1.connect (audioContext.destination);
gainNode2.connect (audioContext.destination);
bSrc.buffer = decoded;
bSrc.loop = false;
// You'll hear two double-speed buffers playing at unison
bSrc.start(0);

それは仕様によるものですか?私が望んでいるのは、サウンドを正確に「複製」することです(これは、2つの異なるルートに送信されます。フィドルは、より大きなプロジェクトの概念実証にすぎません)。

編集:

  • Chromeバージョン24.0.1312.56/Ubuntu 12.10でこれをテストしましたが、動作は存在します。
  • この動作は、Chromeバージョン24.0.1312.68 /Ubuntu12.10にも存在します
  • Chromeバージョン24.0.1312.57/Mac OSXでは、Audio APIは正常に機能し、この動作は発生しません。

Linuxのみの問題でしょうか?

4

1 に答える 1

1

Linux の実装の問題のようです。OS XのChromeで動作します。

于 2013-02-07T19:19:11.523 に答える