OpenALの導入と音源ファイルの単純再生 |
まずは、OpenALの公式サイト(http://www.openal.org/)からOpenALライブラリSDKをダウンロードする。今回使用したのはOpenAL 1.1 SDK for Windows(2008/01/18時点)。 ダウンロードが完了すると"OpenAL11CoreSDK.exe"なる実行ファイルが出来るので、おもむろに実行する。するとインストーラーになっているので、指示に従ってインストール。 続いて同サイトからALUTをダウンロードする。得られたヘッダーファイル,libファイル,dllを適当なディレクトリに配置し、完了。ALUTの中にはサンプルとして"playfile.exe"が入っているので、試しにコマンドラインで実行してみる。ピロピロ音が鳴った。どうやら成功のようだ。 開発スタート。 OpenALSDK付属のサンプル通りにやるか、チュートリアルサイトDevMaster.net OpenAL Tutorialsに従うか、いきなりALUTで行うか迷ったが、どうせチャレンジするなら最新であろうALUTを使う方法で始めてみる。ダウンロードしたALUTライブラリ内にdoc/alut.htmlも添付されているので、まあこれを見ながらすすめよう。 ちなみに、OpenALの関数ランゲージリファレンスはOpenALのインストールディレクトリ内の"docs/OpenAL Programmer's Guide.pdf"に記されています。 まず最初にdoc/alut.htmlに記載されている"Hello world"のソースを丸々コピー。 音声ライブラリのHello worldってなんなんだ、と思ったら、
関数で男が"Hello world"としゃべってる音声バッファが作られるらしい。 こういった無駄な機能は熱い。 早速コンパイルしようとすると、早速エラー。GLUTと違って、libも手動設定っぽい。 こういうのはプロジェクトファイル作るたびに設定を忘れがちなので、pragmaで記述。 結局コンパイルできたソースは次のようになった。
実行すると、男が"Hello world"としゃべる。 ソースをみて思うところとしては、 OpenALというのは、バッファ作成→ソース作成→音鳴らす、の順で動作させるようだ。 バッファやソースをポインタではなくuint型で指定させるあたりは、OpenGLのテクスチャの扱いに似ているな。 使われているALUT関数は,
の4つだけなので、どうやらALUTの請け負っている部分はInitでOpenAL用のスレッドを作り、 その管理を行うのがメインのようだ。バッファの作成も出来るみたいだけど、 wevやmp3を読み込める親切関数はあるのだろうか?
関数の下に"For backwards-compatibility"として
ということで、wavやその他のファイルを再生すべく、上記のソースに修正をかける。 単純にバッファの作成を次のようにしたらうまくいった。
プロパティー設定は? OpenALでは再生環境の各種設定ができる(と期待している)。 例えば、音源の位置や方向、観測者の位置などを設定することで、聞こえ方が変化するなど。ここではその第一歩として音源のループ再生を行う 音源の各種設定は
|
Atsushi M. Ito web |