読者です 読者をやめる 読者になる 読者になる

S.F. Page

Programming,Music,etc...

Native Client - Audio再生サンプル(XMPlayer)を作ってみる(2)

Web NaCl XM Player JavaScript

Native Client SDKのsine_synthサンプルをベースに、XMFileのプレーヤーを作ってみている。

なんとか音が出たのでYouTubeに動画をアップした。曲は有名な「Sweet Dream」で、ファイルサイズは700kb位である。

今のところ、UI用のHTMLファイルと同じ場所にあるサンプルXMファイルを読み込み・再生するレベル。再生と停止はできる。

XMファイルの再生コードは元々のコードがよく出来ているので少しいじるだけで良かった。

Native Clientモジュールのデバッグだがかなりしょぼい。gdbは使えない(もともとgdbの使い方自体知らないが)。環境変数を設定するとMacやLinuxならJavaScript Consoleにデバッグ出力できるようだがWindowsはダメらしい。
http://code.google.com/intl/ja/chrome/nativeclient/docs/compiling.html#Debug

JavaScriptのメソッドが比較的簡単にC++側から呼べるので、UI画面にデバッグ出力して当面をしのぐことにする。

Pepper Audio APIによるサウンド再生は比較的簡単に行える。内容もコールバック関数が呼ばれたら必要な数の再生データを渡すだけである。

Chromeの開発版であるChromiumのAudio関連のソースコードを少し読んだがWindowsの実装は昔ながらのマルチメディアAPIを使用していた。おそらくすべてのWindowsで安定して動くということを考えるとそうなるのだろう。というわけで今のところWindows版のChromeにおいてはNative Clientを用いても低レイテンシー・ビットパーフェクトなオーディオ再生は望めないようである。