Re: LoadSoundMemについて ( No.1 ) |
- 名前:けいし 日時:2007/02/07 22:38
フリーズ、というのは、フルスクリーンモードでですか?
ウインドウモードでもフリーズしますか?
それとも、エラーメッセージが発生していますか?
|
Re: LoadSoundMemについて ( No.2 ) |
- 名前:お父さん 日時:2007/02/07 23:56
"Resource/Music/BGM/Battle_01.mp3" のところですが、パスは"Resource\\Music\\BGM\\Battle_01.mp3"
とするべきじゃないでしょうか?
|
Re: LoadSoundMemについて ( No.3 ) |
- 名前:犀肥 日時:2007/02/08 10:52
フリーズは1024×768のウィンドウモードです。
エラーメッセージなどは特に表示されません。
パスは / でも大丈夫のはすですが…
|
Re: LoadSoundMemについて ( No.4 ) |
- 名前:wiz 日時:2007/02/08 10:53
とるあえず、LoadSoundMem関数が失敗してたら再生ができるわけもないので成功していることを確めては?
printDX("LoadSoundMem Ret:%d", BGM );
if( BGM == -1 ){
return 1;//戻り値は適当
}
|
Re: LoadSoundMemについて ( No.5 ) |
- 名前:犀肥 日時:2007/02/08 13:45
そうですね、やってみます。
|
Re: LoadSoundMemについて ( No.6 ) |
- 名前:管理人 日時:2007/02/08 13:57
犀肥さん始めまして、DXライブラリの管理人です。
LoadSoundMem は初期設定ではサウンドファイルがmp3等の圧縮された
データ形式だった場合、読み込み時に全てPCM形式に変換するように
なっていますので、恐らくフリーズしているのではなくmp3→PCM変換に
時間が掛かっているのだと思います。
SetCreateSoundDataType という関数で設定を変更することで
再生時にmp3→PCM変換をするようにして、LoadSoundMem 自体は
直ぐ終了するようにすることが出来ますので(その分再生時の負荷は高く
なりますが)、宜しければ SetCreateSoundDataType 関数の解説を
ご覧になってみてください。m(_ _)m
http://homepage2.nifty.com/natupaji/DxLib/dxfunc.html#R15N25
|
Re: LoadSoundMemについて ( No.7 ) |
- 名前:犀肥 日時:2007/02/08 14:04
そうなんですか、やってみます。
|
Re: LoadSoundMemについて ( No.8 ) |
- 名前:犀肥 日時:2007/02/08 14:21
管理人さんの仰る通り、SetCreateSoundDataType関数を
使ってみましたが、再生できません。
やはり真っ黒無音状態になってしまいます。
処理に時間が掛かっているのかと思い、5分ほど待ってみましたが、
相変わらずの状態です。
ソースを載せておきます。
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode( TRUE );
SetGraphMode( 640 , 480 , 16 );
if( DxLib_Init() == -1 ) return -1 ;
int BGM ;
SetCreateSoundDataType( DX_SOUNDDATATYPE_FILE );
BGM = LoadSoundMem( "Battle_01.mp3" );
PlaySoundMem( BGM , DX_PLAYTYPE_LOOP );
WaitKey();
DxLib_End();
return 0 ;
}
|
Re: LoadSoundMemについて ( No.9 ) |
- 名前:管理人 日時:2007/02/10 16:33
犀肥さんどうも、DXライブラリの管理人です。
宜しければ
BGM = LoadSoundMem( "Battle_01.mp3" );
の後に
if( BGM < 0 )
{
DrawString( 0, 0, "ERROR", GetColor( 255,255,255 ) );
}
という記述を追加して、正常に読み込まれているかどうかをご確認
になってみて下さい。
あと、犀肥さんがお使いの環境は BorlandC++ と VisualC++ のどちらでしょうか?
|
Re: LoadSoundMemについて ( No.10 ) |
- 名前:犀肥 日時:2007/02/11 10:46
お手数をおかけしています。犀肥です。
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode( TRUE );
SetGraphMode( 640 , 480 , 16 );
if( DxLib_Init() == -1 ) return -1 ;
int BGM ;
SetCreateSoundDataType( DX_SOUNDDATATYPE_FILE );
BGM = LoadSoundMem( "Battle_01.mp3" );
if( BGM < 0 )
{
DrawString( 0, 0, "ERROR", GetColor( 255,255,255 ) );
}
else
DrawString( 0, 0, "OK", GetColor( 255,255,255 ) );
PlaySoundMem( BGM , DX_PLAYTYPE_LOOP );
WaitKey();
DxLib_End();
return 0 ;
}
でやってみました。結果は
OK
でした。別の音楽ファイルに変えてやってみたところ、
正常に再生されました。
Battle_01.mp3 になにか原因があるのでしょうか。
開発環境は Visual C++ です。
|
Re: LoadSoundMemについて ( No.11 ) |
- 名前:管理人 日時:2007/02/13 14:15
犀肥さんどうも、DXライブラリの管理人です。
犀肥さんの仰るとおり、Battle_01.mp3 に何か原因がありそうです。
ただ、直接調べてみないと何が原因で正常に再生できないのかが
分かりませんので、もし差し支え無ければ Battle_01.mp3 をメールで
BQE00322(アットマーク)nifty.com まで送って頂けないでしょうか?m(_ _)m
|
Re: LoadSoundMemについて ( No.12 ) |
- 名前:管理人 日時:2007/02/14 15:28
犀肥さんどうも、DXライブラリの管理人です。
メールをお送り頂き有難うございます、Battle_01.mp3 が再生されない
原因が分かりました。
正常に再生されるように修正したバージョンをアップしましたので
宜しければお試し下さい。m(_ _)m
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
原因は二つあり、片方はMP3ファイルのサイズ計算ミスだったので
修正出来たのですが、もう片方は使用メモリの容量に関するエラーで
現状では対応出来ていませんので、申し訳ありませんが再生時間の長い
サウンドデータは
SetCreateSoundDataType( DX_SOUNDDATATYPE_MEMPRESS );
又は
SetCreateSoundDataType( DX_SOUNDDATATYPE_FILE );
の設定に変更した上で LoadSoundMem で読み込んでください。m(_ _)m
|
Re: LoadSoundMemについて ( No.13 ) |
- 名前:犀肥 日時:2007/02/15 15:13
お手数をおかけしております。犀肥です。
管理人さん、ありがとうございます。
無事に再生できました。
これでゲーム作りが再開できそうです。
本当にありがとうございました。
|