トップページ > 過去ログ > 記事閲覧
PlayMusic が正常に動作しない。
名前:Masao 日時: 2009/10/18 13:37

いつも対応ありがとうございます。 先ほどのバグ修正(モデル読み込み時に起きるカレントディレクトリの変更)で、バージョンを 3.00c から 3.00d に更新したのですが、どうやら、 PlayMusic で、音楽(MIDI)を正常に再生できなくなっておりました。 3.00c まででは、カレントディレクトリにあわせれば再生はできたのですが、 3.00d にすると、カレントディレクトリをあわせても再生してくれないみたいです。(戻り値は-1) よろしくお願いします。

Page: 1 |

Re: PlayMusic が正常に動作しない。 ( No.1 )
名前:管理人 日時:2009/10/18 18:45

なんだか私の環境では変な状況になっています DxLib_Init の前に SelectMidiMode( DX_MIDIMODE_DM ) ; と記述して DirectMusic 経由で 再生しないとMIDIファイルを演奏できなくなってしまいました ただ、演奏されない( 何も聞こえない )だけで SelectMidiMode( DX_MIDIMODE_DM ) ; と 記述しない場合も戻り値は 0 です Masaoさんの状況は私の状況と違うみたいですが、Log.txt には何かそれらしき出力はされていないでしょうか?
Re: PlayMusic が正常に動作しない。 ( No.2 )
名前:Masao 日時:2009/10/18 23:53

ミュージックファイル material/das.mid の読み込みに失敗しました in LoadMusicMem このような1行がありましたが、それ以外不自然なところは見当たりませんでした。 とはいえ、私が見逃しているだけの可能性もありますので、したの方に貼り付けますね。 それから、メモリリークの件でライブラリを更新したところ、MIDIを開く処理でひっかかっているのか、起動時間が役10倍ほど長くなっておりました。 (時間にして20秒ぐらい) ブレイクポイントいれて調査したところ DxLib_Init() この初期化関数内で長時間スタック(滞在?)しているようです。 出力ウィンドウでは、この時ちょうど 'test.exe': 'C:\Windows\SysWOW64\midimap.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\dmsynth.dll' を読み込みました 出力ポート Device0:Microsoft MIDI Mapper [Emulated] 出力ポート Device1:Microsoft GS Wavetable Synth [Emulated] 出力ポート Device2:Microsoft Synthesizer 'test.exe': 'C:\Windows\SysWOW64\dsdmo.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\msdmo.dll' を読み込みましたを読み込みました これらの行を表示している最中でした。 0:システムの情報を出力します 0: DXライブラリ Ver3.00e 0: OS WindowsVista ( Build 6001 Service Pack 1 ) 100: CPU動作速度:大体1.79GHz 101: MMX命令を使用します 103: SSE命令が使用可能です 107: SSE2命令が使用可能です 110: CPUベンダ:GenuineIntel 116: CPU名:Intel(R) Core(TM)2 Duo CPU P7350 @ 2.00GHz 119:COMの初期化... 成功しました 124:メモリ総量:4096.00MB 空きメモリ領域:4096.00MB 126:タイマーの精度を検査します 128:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 129: パフォーマンスカウンターを使用します タイマー分解能 : 14318.180000 KHz 133: ソフトの二重起動検査... 二重起動はされていませんでした 172:ウインドウクラスを登録します... 登録に成功しました 174:ウインドウモード起動用のウインドウを作成します 178:ウインドウの作成に成功しました 234:IMEを無効にしました 452:ウインドウスタイルをウインドウモード用に変更します... 完了 459:DirectInput関係初期化処理 461: DirectInput7 の取得中... 成功 596: 引き続き初期化処理... 初期化成功 605: ジョイパッドの初期化... 633: ジョイパッドの初期化は正常に終了しました 635: マウスデバイスの初期化... 初期化成功 640: キーボードデバイスの初期化... 初期化成功 647:DirectInput 関連の初期化は正常に終了しました 648:DirectSound8 の初期化を行います 19589:出力ポート Device0:Microsoft MIDI Mapper [Emulated] 19590:出力ポート Device1:Microsoft GS Wavetable Synth [Emulated] 19591:出力ポート Device2:Microsoft Synthesizer 39052: DirectSound デバイスを列挙します 39057: モジュール名: ドライバ記述:Primary Sound Driver 39059: モジュール名:{0.0.0.00000000}.{e9c88b09-16d9-4820-bba3-a1e1d7df4106} ドライバ記述:Speakers (Realtek High Definition Audio) 39061: モジュール名:{0.0.0.00000000}.{56b9d450-745b-4b2a-9074-8cd214f6a3ff} ドライバ記述:Realtek Digital Output (Realtek High Definition Audio) 39063: 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz 39065: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 39067: 利用可能サンプリング精度 39068: プライマリ 16bit = OK 8bit = OK 39071: セカンダリ 16bit = OK 8bit = OK 39073: 利用可能チャンネル 39075: プライマリ MONO = OK STEREO = OK 39078: セカンダリ MONO = OK STEREO = OK 39080:DirectSound の初期化は正常に終了しました 39138:DirectDraw オブジェクトの取得を行います.... 成功 39168:引き続き初期化処理... 初期化に成功しました 39365:IDirect3D9 オブジェクトを取得します.... 成功 39463:IDirect3DDevice9 オブジェクトを取得します.... ハードウエア頂点演算を使用します 39676:成功 39678:画面のフォーマットは D3DFMT_X8R8G8B8 です 39679:Zバッファのフォーマットは D3DFMT_D16 です 39681:16bit カラーフォーマットは D_D3DFMT_R5G6B5 です 39682:32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です 39684:アルファ付き 16bit カラーフォーマットは D_D3DFMT_A4R4G4B4 です 39685:アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です 39688:アルファテスト用 16bit カラーフォーマットは D_D3DFMT_A1R5G5B5 です 39689:アルファテスト用 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です 39693:DXT1テクスチャフォーマットは D_D3DFMT_DXT1 です 39695:DXT2テクスチャフォーマットは D_D3DFMT_DXT2 です 39698:DXT3テクスチャフォーマットは D_D3DFMT_DXT3 です 39700:DXT4テクスチャフォーマットは D_D3DFMT_DXT4 です 39701:DXT5テクスチャフォーマットは D_D3DFMT_DXT5 です 39702:描画用 16bit カラーフォーマットは D_D3DFMT_R5G5B5 です 39704:描画用 32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です 39705:描画用アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です 39707:Zバッファを作成します.... 成功 39748:プログラマブルシェーダーを使用します 39788:フォントの初期化を行います 39797:フォントの初期化は正常に終了しました 39799:文字コードバッファの初期化を行います... 完了しました 40334:ミュージックファイル material/das.mid の読み込みに失敗しました in LoadMusicMem 48551:フォントの初期化を行います 48556:フォントの初期化は正常に終了しました 48647:DirectInput 関連の終了処理... 完了 48723:DirectSound の終了処理は正常に終了しました 48740:ウインドウを閉じようとしています 48764:ウインドウが破棄されようとしています 48765:ソフトを終了する準備が整いました 48768: 48770:Alloc memory dump 48772: Total size:0(0.000kb) Alloc num:0 48776: 以下は出力ウィンドウ側 'test.exe': 'C:\Users\Masao\Documents\C language\gaikotu shooter\Debug\test.exe' を読み込みました。シンボルが読み込まれました。 'test.exe': 'C:\Windows\SysWOW64\ntdll.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\kernel32.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\user32.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\gdi32.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\advapi32.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\rpcrt4.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\secur32.dll' を読み込みました 'test.exe': 'C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.6001.18000_none_886786f450a74a05\comctl32.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\winmm.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\msvcrt.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\ole32.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\oleaut32.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\oleacc.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\wsock32.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\ws2_32.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\nsi.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\imm32.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\msctf.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\msacm32.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\shell32.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\shlwapi.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\shimeng.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\apphelp.dll' を読み込みました 'test.exe': 'C:\Windows\AppPatch\AcLayers.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\userenv.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\winspool.drv' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\mpr.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\lpk.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\usp10.dll' を読み込みました 'test.exe': 'C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.6001.18000_none_5cdbaa5a083979cc\comctl32.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\uxtheme.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\clbcatq.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\IME\IMEJP10\IMJPTIP.DLL' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\IMJP10K.DLL' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\IME\SHARED\IMETIP.DLL' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\IME\SHARED\imecfm.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\IME\IMEJP10\IMJPAPI.DLL' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\version.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\IME\SHARED\IMJKAPI.DLL' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\IME\SHARED\imecfm.dll' をアンロード 'test.exe': 'C:\Windows\SysWOW64\IMJP10K.DLL' をアンロード 'test.exe': 'C:\Windows\SysWOW64\IME\SHARED\IMJKAPI.DLL' をアンロード 'test.exe': 'C:\Windows\SysWOW64\IME\IMEJP10\IMJPAPI.DLL' をアンロード 'test.exe': 'C:\Windows\SysWOW64\version.dll' をアンロード 'test.exe': 'C:\Windows\SysWOW64\IME\SHARED\IMETIP.DLL' をアンロード 'test.exe': 'C:\Windows\SysWOW64\IME\IMEJP10\IMJPTIP.DLL' をアンロード システムの情報を出力します DXライブラリ Ver3.00e OS WindowsVista ( Build 6001 Service Pack 1 ) CPU動作速度:大体1.79GHz MMX命令を使用します SSE命令が使用可能です SSE2命令が使用可能です CPUベンダ:GenuineIntel CPU名:Intel(R) Core(TM)2 Duo CPU P7350 @ 2.00GHz COMの初期化... 成功しました メモリ総量:4096.00MB 空きメモリ領域:4096.00MB 4096.00MB タイマーの精度を検査します 精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 パフォーマンスカウンターを使用します タイマー分解能 : 14318.180000 KHz ソフトの二重起動検査... 二重起動はされていませんでした ウインドウクラスを登録します... 登録に成功しました ウインドウモード起動用のウインドウを作成します ウインドウの作成に成功しました IMEを無効にしました 'test.exe': 'C:\Windows\SysWOW64\IME\IMEJP10\IMJPTIP.DLL' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\IMJP10K.DLL' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\IME\SHARED\IMETIP.DLL' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\IME\SHARED\imecfm.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\IME\IMEJP10\IMJPAPI.DLL' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\version.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\IME\SHARED\IMJKAPI.DLL' を読み込みました ウインドウスタイルをウインドウモード用に変更します... 完了 DirectInput関係初期化処理 DirectInput7 の取得中... 'test.exe': 'C:\Windows\SysWOW64\dinput.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\hid.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\setupapi.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\wintrust.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\crypt32.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\msasn1.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\imagehlp.dll' を読み込みました 成功 引き続き初期化処理... 初期化成功 ジョイパッドの初期化... ジョイパッドの初期化は正常に終了しました マウスデバイスの初期化... 初期化成功 キーボードデバイスの初期化... 初期化成功 DirectInput 関連の初期化は正常に終了しました DirectSound8 の初期化を行います 'test.exe': 'C:\Windows\SysWOW64\dmloader.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\dmusic.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\ksuser.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\dsound.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\powrprof.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\dmime.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\wdmaud.drv' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\MMDevAPI.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\avrt.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\AudioSes.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\AudioEng.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\psapi.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\msacm32.drv' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\midimap.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\dmsynth.dll' を読み込みました 出力ポート Device0:Microsoft MIDI Mapper [Emulated] 出力ポート Device1:Microsoft GS Wavetable Synth [Emulated] 出力ポート Device2:Microsoft Synthesizer 'test.exe': 'C:\Windows\SysWOW64\dsdmo.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\msdmo.dll' を読み込みました DirectSound デバイスを列挙します モジュール名: ドライバ記述:Primary Sound Driver モジュール名:{0.0.0.00000000}.{e9c88b09-16d9-4820-bba3-a1e1d7df4106} ドライバ記述:Speakers (Realtek High Definition Audio) モジュール名:{0.0.0.00000000}.{56b9d450-745b-4b2a-9074-8cd214f6a3ff} ドライバ記述:Realtek Digital Output (Realtek High Definition Audio) 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 利用可能サンプリング精度 プライマリ 16bit = OK 8bit = OK セカンダリ 16bit = OK 8bit = OK 利用可能チャンネル プライマリ MONO = OK STEREO = OK セカンダリ MONO = OK STEREO = OK DirectSound の初期化は正常に終了しました 'test.exe': 'C:\Windows\SysWOW64\d3d9.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\d3d8thk.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\dwmapi.dll' を読み込みました DirectDraw オブジェクトの取得を行います.... 'test.exe': 'C:\Windows\SysWOW64\ddraw.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\dciman32.dll' を読み込みました 成功 引き続き初期化処理... 'test.exe': 'C:\Windows\SysWOW64\atiumdag.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\atiumdva.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\atipdlxx.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\atipdlxx.dll' をアンロード 初期化に成功しました IDirect3D9 オブジェクトを取得します.... 'test.exe': 'C:\Windows\SysWOW64\atipdlxx.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\atipdlxx.dll' をアンロード 成功 IDirect3DDevice9 オブジェクトを取得します.... 'test.exe': 'C:\Windows\SysWOW64\atipdlxx.dll' を読み込みました 'test.exe': 'C:\Windows\SysWOW64\atipdlxx.dll' をアンロード ハードウエア頂点演算を使用します 成功 画面のフォーマットは D3DFMT_X8R8G8B8 です Zバッファのフォーマットは D3DFMT_D16 です 16bit カラーフォーマットは D_D3DFMT_R5G6B5 です 32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です アルファ付き 16bit カラーフォーマットは D_D3DFMT_A4R4G4B4 です アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です アルファテスト用 16bit カラーフォーマットは D_D3DFMT_A1R5G5B5 です アルファテスト用 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です DXT1テクスチャフォーマットは D_D3DFMT_DXT1 です DXT2テクスチャフォーマットは D_D3DFMT_DXT2 です DXT3テクスチャフォーマットは D_D3DFMT_DXT3 です DXT4テクスチャフォーマットは D_D3DFMT_DXT4 です DXT5テクスチャフォーマットは D_D3DFMT_DXT5 です 描画用 16bit カラーフォーマットは D_D3DFMT_R5G5B5 です 描画用 32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です 描画用アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です Zバッファを作成します.... 成功 プログラマブルシェーダーを使用します フォントの初期化を行います フォントの初期化は正常に終了しました 文字コードバッファの初期化を行います... 完了しました ミュージックファイル material/das.mid の読み込みに失敗しました in LoadMusicMem フォントの初期化を行います フォントの初期化は正常に終了しました スレッド 'Win32 スレッド' (0x13c0) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0xfc0) はコード 0 (0x0) で終了しました。 'test.exe': 'C:\Windows\SysWOW64\atiumdva.dll' をアンロード 'test.exe': 'C:\Windows\SysWOW64\atiumdag.dll' をアンロード 'test.exe': 'C:\Windows\SysWOW64\d3d9.dll' をアンロード 'test.exe': 'C:\Windows\SysWOW64\d3d8thk.dll' をアンロード DirectInput 関連の終了処理... 完了 スレッド 'Win32 スレッド' (0xee0) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0xcf4) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0x7f0) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0x2a8) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0x1234) はコード 0 (0x0) で終了しました。 DirectSound の終了処理は正常に終了しました ウインドウを閉じようとしています 'test.exe': 'C:\Windows\SysWOW64\IME\SHARED\imecfm.dll' をアンロード 'test.exe': 'C:\Windows\SysWOW64\IMJP10K.DLL' をアンロード ウインドウが破棄されようとしています ソフトを終了する準備が整いました Alloc memory dump Total size:0(0.000kb) Alloc num:0 スレッド 'Win32 スレッド' (0x104c) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0xfb0) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0xf90) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0x4e0) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0xa8) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0xbb0) はコード 0 (0x0) で終了しました。 プログラム '[4976] test.exe: ネイティブ' はコード 0 (0x0) で終了しました。
Re: PlayMusic が正常に動作しない。 ( No.3 )
名前:管理人 日時:2009/10/24 14:10

> ミュージックファイル material/das.mid の読み込みに失敗しました in LoadMusicMem こちらの出力は単純にファイルオープンに失敗した際に出力されるメッセージなのですが、 サウンド周りは 3.00c から 3.00d に掛けて何も変更していないので、原因の検討が付きません 一応私のVista環境で正常に再生できることを確認したプログラムをアップしてみましたので、 よろしければ Masaoさんの環境でも正常に再生されるか試してみていただけないでしょうか? http://homepage2.nifty.com/natupaji/temp/PlayMusicTest.exe  中に PlayMusicTest.exe がありますので、実行してみてください、test.mid が再生されるはずです
Re: PlayMusic が正常に動作しない。 ( No.4 )
名前:Masao 日時:2009/10/25 11:47

再生できました。 すいません、原因がなんだかよく分からないのですが、もう一度新しく3.00dをDLして、ディレクトリを指定してリビルドしてみたら、成功しました。 お騒がせしました。

Page: 1 |