ページ 11

リソースからWAVEデータ

Posted: 2009年2月21日(土) 15:39
by lbfuvab
Dxライブラリで小さなゲームを作っていて、実行ファイルだけで動くようにしたいので
WAVEデータをリソースに置いてそれを再生しようと思ったのですが、
ググっても具体的な方法が全然分かりません。

環境はWinXP + VC2008EE + DxLib2.25です。

Re:リソースからWAVEデータ

Posted: 2009年2月21日(土) 15:49
by コスモ
DXライブラリのリファレンス
http://homepage2.nifty.com/natupaji/DxL ... .html#R8N1
に音利用関数
int PlaySoundFile( char *FileName , int PlayType ) ;
がありますがそれでは駄目ですか?
リンク先には簡単なサンプルプログラムもあります。

>実行ファイルだけで動くようにしたいので
>WAVEデータをリソースに置いてそれを再生しようと思ったのですが

についてですが、
WAVEデータは実行ファイルには組み込めないと思います。
同じフォルダにあれば再生は可能ですが。

ところで、
DxLib2.25には(旧)DxLib2.25aと(新)DxLib2.25bのバージョンがあるのはご存知ですか?

Re:リソースからWAVEデータ

Posted: 2009年2月21日(土) 16:20
by SCI
結論から言うと、可能です。
PlaySound()関数(DxLibの関数じゃないよっ)とかを調べてみてください。

ただ、実行ファイルのサイズが大きくなるので、ファイルにするかリソースにするかは状況によって使い分けるといいと思います。

Re:リソースからWAVEデータ

Posted: 2009年2月21日(土) 16:33
by lbfuvab
cosmo様
>WAVEデータは実行ファイルには組み込めないと思います。
>同じフォルダにあれば再生は可能ですが。

えーと、カスタムリソースとして使えたと思っていたのですが

>ところで、
>DxLib2.25には(旧)DxLib2.25aと(新)DxLib2.25bのバージョンがあるのはご存知ですか?

調べたのですが分かりませんでしたorz

SCI様

>結論から言うと、可能です。
>PlaySound()関数(DxLibの関数じゃないよっ)とかを調べてみてください。

この関数で出来ました。本当に有難うございます。

Re:リソースからWAVEデータ

Posted: 2009年2月21日(土) 19:36
by Mist
解決していますけど以下の関数で出来たと思います。

extern int LoadSoundMemByResource( const char *ResourceName, const char *ResourceType, int BufferNum = 1 ) ; // サウンドをリソースから読み込む

Re:リソースからWAVEデータ

Posted: 2009年2月21日(土) 19:59
by lbfuvab
教えていただき、有難うございます。
しかし、BufferNumというのは一体何のパラメータなのでしょうか?

Re:リソースからWAVEデータ

Posted: 2009年2月21日(土) 22:15
by Mist
デフォルト値付きの引数は無視して問題ないと思います。
どうしても気になるのであれば、DXライブラリをソース解析するか本家の管理人さんに質問されてはいかがでしょうか。

Re:リソースからWAVEデータ

Posted: 2009年2月21日(土) 23:34
by コスモ
>>lbfuvabさん
>えーと、カスタムリソースとして使えたと思っていたのですが

すいません勉強不足でした…orz
確かにWAVEファイルは実行ファイルに組み込めるみたいです。