RSS Twitter Facebook

2011/10/07 (2011年10月 のアーカイブ)

Web Audio API での音データのつっこみ方

Javascriptから音を合成する使い方で結構やっかいかも知れないこと

Audio Data API はアプリから音データを強引にプッシュするのだけど Web Audio API はハンドラーで引っ張るプル型なのだ。
それは良いが問題はパフォーマンスが厳しくなった時に途切れないかどうか。

あらかじめバッファに一杯準備しておけばいいじゃん・・・て、思っているとこれはどうやら甘い。
何せJavascriptなものでマルチスレッドで勝手にデータを持っていってくれるわけではなく、重い処理をしているとハンドラーの呼び出し自体が遅延する。まあそうなるね。

準備できてるデータがいくらあっても今必要なデータを持っていってくれないじゃどうしようもない。ハンドラーが割り込む隙を作るために重い処理はちゃんと分割しておかないといけないのだ。やっかいなのはプログラム全体に渡ってそういう作りにしておかないといけないという事。

Audio Data API なら問題ないという事でもないんだけど、APIの先のバッファは結構でかそうだし重い処理の合間にとりあえずデータを突っ込むことはできる。

Web Audio APIでハンドラーがプルした先のバッファ量は小さそうだ。レイテンシー考えるとしょうがないんだが。

Posted by g200kg : 2011/10/07 22:31:15