トップページ > 記事閲覧
mp3ファイルが正常に再生されない
名前:みちゃっこ 日時: 2021/03/31 17:10

DXライブラリーのVer.3.22aからmp3ファイルを 非同期読み込みかつx64(64bit)でビルドしてLog.txtの中身を確認すると大量に「MP3変換用 NullRender の作成に失敗しました」のログが出力されています。 DXライブラリー Ver.3.22a(2020/8/23)のバージョンでビルドしたmp3は正常に再生できます。 しかしDXライブラリーの最新バージョン Ver.3.22c(2021/1/31)のバージョンではmp3ファイルの音声が正常に再生されない。(音が小さい、はっきり音が鳴らない)。 Win32(32bit)ビルドとwavファイルとoggファイルの音声は全く問題ありません。 最新テスト版(Ver 3.22d)も正常に再生されませんでした。 Log.txt(一部) 1096: 画像の単純転送処理の初期化... 成功 1107: 深度バッファを作成します.... 成功 1118: フォントの初期化を行います 1124: フォントの初期化は正常に終了しました 1211: 文字コードバッファの初期化を行います... 完了しました 1229:DXライブラリの初期化処理終了 1249:MP3変換用 NullRender の作成に失敗しましたMP3変換用 NullRender の作成に失敗しましたMP3変換用 NullRender の作成に失敗しましたMP3変換用 NullRender の作成に失敗しましたMP3変換用 NullRender の作成に失敗しましたMP3変換用 NullRender の作成に失敗しましたMP3変換用 NullRender の作成に失敗しましたMP3変換用 NullRender の作成に失敗しましたMP3変換用 NullRender の作成に失敗しましたMP3変換用 NullRender の作成に失敗しましたMP3変換用 NullRender の作成に失敗しましたフォントの初期化を行います 3401:フォントの初期化は正常に終了しました 3418:d3d11.dll の解放 1 3423:dxgi.dll の解放 1 3428:Direct3D11 のオブジェクト数を出力 3432:Direct3D11 のオブジェクト合計数 : 0 3439:DirectInput 関連の終了処理... 完了 3444:サウンド関連の終了処理... 完了 3466:ウィンドウ関連の終了処理... ウインドウを閉じようとしています 3478:ウインドウが破棄されようとしています 3484:ソフトを終了する準備が整いました 3540:完了 3548:COMを終了... 完了 3553: 3557:Alloc memory dump 3561: Total size:0(0.000kb) Alloc num:0 3565: [PC構成] CPU:Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz GPU:NVIDIA GeForce GTX 1060 6GB RAM:16GB OS:Windows 10 Home 20H2 IDE:Visual Studio 2019 再現しやすくするためにソースコードを書いておきます。 #include "DxLib.h" const int KeyBufNum = 256; char KeyBuf[KeyBufNum]; char KeyBufFlag[KeyBufNum]; void KeyBufProcess() { // キー押下処理 for (int i = 0; i < KeyBufNum; i++) { KeyBufFlag[i] = KeyBuf[i]; } } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // ウィンドウモード ChangeWindowMode(TRUE); // DXライブラリー初期化 if (DxLib_Init() == -1) { return -1; } // 裏画面化 SetDrawScreen(DX_SCREEN_BACK); // サウンドハンドル const int SoundHandleNum = 32; int SoundHandle[SoundHandleNum]; // 非同期読み込み(オフ[FALSE]にした場合問題ない) SetUseASyncLoadFlag(TRUE); // サウンドの読み込み for (int i = 0; i < SoundHandleNum; i++) { SoundHandle[i] = LoadSoundMem("test.ogg"); } // 非同期読み込み解除 SetUseASyncLoadFlag(FALSE); // サウンドID int SoundID = 0; while (ProcessMessage() == 0 && KeyBuf[KEY_INPUT_ESCAPE] == 0) { ClearDrawScreen(); GetHitKeyStateAll(KeyBuf); // カーソルキー左右でサウンドID変更 if (KeyBuf[KEY_INPUT_LEFT] == 1 && KeyBufFlag[KEY_INPUT_LEFT] == 0) { SoundID--; if (SoundID < 0) { SoundID = 0; } } if (KeyBuf[KEY_INPUT_RIGHT] == 1 && KeyBufFlag[KEY_INPUT_RIGHT] == 0) { SoundID++; if (SoundID >= SoundHandleNum - 1) { SoundID = SoundHandleNum - 1; } } // Zキーでサウンド再生 if (CheckHandleASyncLoad(SoundHandle[SoundID]) == FALSE) { if (KeyBuf[KEY_INPUT_Z] == 1 && KeyBufFlag[KEY_INPUT_Z] == 0) { PlaySoundMem(SoundHandle[SoundID], DX_PLAYTYPE_BACK); } } // 情報描画 if (CheckHandleASyncLoad(SoundHandle[SoundID]) == FALSE) { DrawFormatString(0, 0, GetColor(255, 255, 255), "サウンドID:[%04x]", SoundID); DrawFormatString(0, 16, GetColor(255, 255, 255), "サウンドハンドル:[%08x]", SoundHandle[SoundID]); DrawString(0, 48, "カーソルキー左右でサウンドID変更", GetColor(255, 255, 255)); DrawString(0, 64, "Zキーでサウンド再生", GetColor(255, 255, 255)); } // キー押下処理 KeyBufProcess(); ScreenFlip(); } // サウンドハンドルを削除 for (int i = 0; i < SoundHandleNum; i++) { DeleteSoundMem(SoundHandle[i]); } // DXライブラリーの終了 DxLib_End(); return 0; } ◆追記 短い音声mp3(1秒未満)だと音が小さく再生される 長い音声(2秒以上)のmp3だと最初の音が途切れる(音声の0.0000秒から1.0000秒の間スキップされる模様) サウンドIDが0000〜000aの場合(音が小さく再生されることが多い) サウンドIDが0010以降の場合正常に再生される。
メンテ

Page: 1 |

Re: mp3ファイルが正常に再生されない ( No.1 )
名前:yumetodo 日時:2021/03/31 21:38

当該mp3はwindows media playerで正常に再生できますか?
メンテ
Re: mp3ファイルが正常に再生されない ( No.2 )
名前:みちゃっこ 日時:2021/03/31 22:06

Windows Media PlayerとVLCでは全く問題なく再生できます。
メンテ
Re: mp3ファイルが正常に再生されない ( No.3 )
名前:管理人 日時:2021/04/02 02:15

ご指摘ありがとうございます 載せていただいた再現用ソースコードで手元でも現象を確認できました こちらに非同期読み込みでx64ビルドでも正常にmp3ファイルを読み込めるように 修正したバージョンをアップしましたので、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ
Re: mp3ファイルが正常に再生されない ( No.4 )
名前:みちゃっこ(解決) 日時:2021/04/02 02:57

正常に再生できるようになりました。 ありがとうございます!!
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存