ma2のblog - わんくま版(仮)

うどん、より、そば

目次

Blog 利用状況

ニュース

Xbox360ゲーマータグ

リンク

ブログ内検索

書庫

日記カテゴリ

fmod APIを使ったサウンドプログラム – リソース(*.rc)のデータを参照する

いろいろあってて、5年振りに、fmod exの事を書きます。

---

ゲーム等で、音楽データが*.exeと別々になっていると、ユーザに音楽データ(ファイル)をさわってしまったりすることがあります。
対策として、音楽データのリソースを定義して、そこにデータを置きます。

※ ユーザー定義リソース/カスタムリソースと言われる物です

以下のコードが例です。

int hoge()
{
  HRSRC hRes = FindResource(0, MAKEINTRESOURCE(IDR_MP3), _T("MP3"));
  if(NULL != hRes){
    HGLOBAL hData = LoadResource(0, hRes);
    if(NULL != hData){
      DWORD dataSize = SizeofResource(0, hRes);
      char* data = (char*)LockResource(hData);

      FMOD_CREATESOUNDEXINFO sndInfo;
      ZeroMemory( &sndInfo, sizeof(FMOD_CREATESOUNDEXINFO) );
      sndInfo.cbsize = sizeof(FMOD_CREATESOUNDEXINFO);
      sndInfo.length = dataSize;


      result = FMOD_System_CreateStream( fmodsystem, data, FMOD_OPENMEMORY,
          &sndInfo, &fmodsound );
      if( result != FMOD_OK ){
        return -3;
      }
    }
  }
  return 0;
}

FindResourceからユーザー定義リソースがあるか捜索し、見つかった場合はLockResourceでロックします。
SizeofResourceをFMOD_CREATESOUNDEXINFOのlengthに渡します。

最後に、LockResourceからFMOD_System_CreateStreamへ渡します。
この際に第三引数に、FMOD_OPENMEMMORYを付けます。

投稿日時 : 2013年10月30日 20:00

コメントを追加

No comments posted yet.
タイトル
名前
URL
コメント