過去ログ

アフィリエイト広告を利用しています

いまさらはじめるDirectX9 その2 OGGを再生する

いきなりDirectXから脱線してOGGを再生する。
まあ、よくあること。

最初にやること

  1. Xiph.org: Downloadsからlibogg*1とlibvorbis*2をダウンロード
  2. libogg-1.1.3.zipとlibvorbis-1.2.0.zipのzipアーカイブを展開

liboggビルド編

  1. フォルダ名をliboggとlibvorbisにする*3
  2. libogg\win32\VS2003\libogg\libogg.vcprojを開く。*4
  3. ビルドオプションを確認してビルド。*5
  4. エラーが出ないで成功すると「libogg.dll」や「libogg.lib」が生成される

libvorbisビルド編

  1. libvorbis\win32\vorbis.dswを開く。*6
  2. vorbis_dynamic」を選択してプロジェクト→プロパティ→構成プロパティーC/C++全般設定→追加インクルードディレクトリの「..\..\ogg\include」を「..\..\libogg\include」に変更*7
  3. vorbis_dynamic」を選択している状態でプロジェクト→プロパティ→構成プロパティー→リンカ→全般→追加のライブラリディレクトリの「..\..\ogg\win32\Dynamic_Release」を「..\..\libogg\win32\VS2003\libogg\Release」に変更*8
  4. vorbis_dynamic」を選択している状態でプロジェクト→プロパティ→構成プロパティー→リンカ→入→追加の依存ファイルの「ogg.lib」を「libogg.lib」に変更*9
  5. ビルドオプションを確認してビルド。*10
  6. Vorbis_Dynamic_Releaseの下に「vorbis.dll」と「vorbis.lib」が生成される*11
  7. 上記と同じように「vorbisfile_dynamic」をビルドし「vorbisfile.dll」と「vorbisfile.lib」を作る。
  8. 必要に応じて「vorbis_static」、「vorbisenc_dynamic」、「vorbisenc_static」、「vorbisfile_dynamic」、「vorbisfile_static」も変更する


追記
ファイルの読み込みではまった。
どうもov_openを使うとseek*12が上手くいかなくて落ちると。
なので、独自で適当なseek関数を作る。そしてov_open_callbacksを自分で設定して呼び出してやると音が鳴るようになった。(* ̄ー ̄)v
サンプルをきれいにまとめなおした方がいかな。


メモ
デバッガでファイルポインタを見ているとファイルオープン後も<不適切なptr>となっていて悩んだ。初めて使用した瞬間に初期化?されるようだ。


参考
Programming Room - Ogg Vorbis
エロゲプレイ記 ... プログラミング

*1:今回はlibogg-1.1.3.zip

*2:今回はlibvorbis-1.2.0.zip

*3:なっていない場合

*4:VS2003プロジェクトなのでそれより新しい場合はコンバートする

*5:DebugやReleaseなど

*6:プロジェクトコンバートする。何回か聴かれるがはいで

*7:自分のディレクトリ配置にあわせること。

*8:自分のディレクトリ配置にあわせること。

*9:自分のディレクトリ配置にあわせること。

*10:DebugやReleaseなど

*11:デバッグ時はvorbis_d.dllとvorbis_d.libになる

*12:_fseek64_wrapがまずそう