いまさらはじめるDirectX9 その2 OGGを再生する
いきなりDirectXから脱線してOGGを再生する。
まあ、よくあること。
最初にやること
- Xiph.org: Downloadsからlibogg*1とlibvorbis*2をダウンロード
- libogg-1.1.3.zipとlibvorbis-1.2.0.zipのzipアーカイブを展開
liboggビルド編
libvorbisビルド編
- libvorbis\win32\vorbis.dswを開く。*6
- 「vorbis_dynamic」を選択してプロジェクト→プロパティ→構成プロパティー→C/C++全般設定→追加インクルードディレクトリの「..\..\ogg\include」を「..\..\libogg\include」に変更*7
- 「vorbis_dynamic」を選択している状態でプロジェクト→プロパティ→構成プロパティー→リンカ→全般→追加のライブラリディレクトリの「..\..\ogg\win32\Dynamic_Release」を「..\..\libogg\win32\VS2003\libogg\Release」に変更*8
- 「vorbis_dynamic」を選択している状態でプロジェクト→プロパティ→構成プロパティー→リンカ→入→追加の依存ファイルの「ogg.lib」を「libogg.lib」に変更*9
- ビルドオプションを確認してビルド。*10
- Vorbis_Dynamic_Releaseの下に「vorbis.dll」と「vorbis.lib」が生成される*11
- 上記と同じように「vorbisfile_dynamic」をビルドし「vorbisfile.dll」と「vorbisfile.lib」を作る。
- 必要に応じて「vorbis_static」、「vorbisenc_dynamic」、「vorbisenc_static」、「vorbisfile_dynamic」、「vorbisfile_static」も変更する
追記
ファイルの読み込みではまった。
どうもov_openを使うとseek*12が上手くいかなくて落ちると。
なので、独自で適当なseek関数を作る。そしてov_open_callbacksを自分で設定して呼び出してやると音が鳴るようになった。(* ̄ー ̄)v
サンプルをきれいにまとめなおした方がいかな。
メモ
デバッガでファイルポインタを見ているとファイルオープン後も<不適切なptr>となっていて悩んだ。初めて使用した瞬間に初期化?されるようだ。