トップページ > 記事閲覧
BGMがゆっくりになる
名前:にこよん 日時: 2017/12/26 19:34

こんばんは VC++2017Windowsで題名の通りですがBGMがゆっくり再生されてしまいます Windowsメディアプレイヤーみたいなやつでは普通に再生できるのですが... 考えられる原因や対策などをご教授していただけないでしょうか? コードは以下の通りです #include "DxLib.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { int SHandle; ChangeWindowMode(TRUE); //ウィンドウモード変更5 if (DxLib_Init() == -1) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } // test.wavのメモリへの読み込みサウンドハンドルをSHandleに保存します SHandle = LoadSoundMem("stage01.mp3"); // 読みこんだ音をノーマル再生します(『PlaySoundMem』関数使用) PlaySoundMem(SHandle, DX_PLAYTYPE_NORMAL); // サウンドハンドルの削除 DeleteSoundMem(SHandle); DxLib_End(); // DXライブラリ使用の終了処理 return 0; // ソフトの終了 }
メンテ

Page: 1 |

Re: BGMがゆっくりになる ( No.1 )
名前:管理人 日時:2017/12/27 01:32

ゆっくり再生される・・・ですか・・・今までご報告を受けたことがない現象です・・・ 再生されている mp3ファイルが原因である可能性がありますので、よろしければ再生が遅くなる mp3ファイルをアップローダーなどでアップしていただけないでしょうか? ( もしどちらかのウェブサイトからダウンロードできるものでしたら、そちらのサイトの URLを教えてください m(_ _)m ) ただ、mp3ファイルの再生には各PCにインストールされているコーデックを利用しているので、 もしにこよんさんのPCにインストールされているコーデックが原因で再生が遅くなって しまっている場合は、直す方法がありません なので、できれば mp3 ではなくDXライブラリの内部に再生用のライブラリを持っている ogg か opus 形式を使用されるようにしてください m(_ _;m
メンテ
Re: BGMがゆっくりになる ( No.2 )
名前:にこよん 日時:2017/12/27 23:17

パソコンのせいだったのですか... 他の音源もほとんどmp3なのですが、時間がある時に変換してみようと思います 可逆圧縮のwavとかでもoggに変換したほうがいいのでしょうか? URL⇒ttps://1drv.ms/f/s!Agz42SEu0D-UgdUupW3SITecdKoogw
メンテ
Re: BGMがゆっくりになる ( No.3 )
名前:yumetodo 日時:2017/12/28 03:24

wavは可逆圧縮ではなく無圧縮では・・・ とりあえずopusはええぞと言いたい。MP3の1.5倍、aacの1.1倍良い(要出典)
メンテ
Re: BGMがゆっくりになる ( No.4 )
名前:yumetodo 日時:2017/12/28 03:26

それで思い出しましたが、DxLibっでflac対応してないですよね?
メンテ
Re: BGMがゆっくりになる ( No.5 )
名前:管理人 日時:2017/12/29 13:15

正常に再生できない mp3 ファイルをアップしていただきありがとうございます すみません、調べたところ、コーデックのせいではなくDXライブラリの mp3 ファイルのヘッダ解析プログラムに バグがあったことが原因でした m(_ _;m アップしていただいた mp3ファイルを正常に再生できるように修正したバージョンをアップしましたので、 よろしければお試しください https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.exe // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.exe // Windows版 C++ Builder 10.1 Berlin 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.exe // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース ( 中身を既存のライブラリのファイルに上書きして、VisualStudioをお使いの場合は『リビルド』を、  BCCをお使いの場合は『再構築』をして下さい ) ただ、本件の問題は修正できましたが前述の通りコーデックの問題がありますので、やはり ogg や opus を使用されることをお勧めします > 他の音源もほとんどmp3なのですが、時間がある時に変換してみようと思います > 可逆圧縮のwavとかでもoggに変換したほうがいいのでしょうか? wavファイルは無圧縮PCM形式の場合はコーデックの力を借りずに再生できますので 無圧縮PCM形式の wavファイルの場合は ogg に変換しなくて大丈夫です ( 寧ろ ogg にするとファイルサイズは小さくなりますが読み込み時間や音質の劣化などが発生してしまいます ) ただ、wavファイルは内部の形式を WMA や ADPCM や MP3 など無圧縮PCM形式以外にすることもできますので、 もし内部形式が一般的な無圧縮PCM形式以外の wavファイルの場合はやはりコーデックの力を借りなければならなくなるので そのような wavファイルをお使いの場合は ogg に変換したほうが良いです > yumetodoさん > それで思い出しましたが、DxLibっでflac対応してないですよね? 対応していません 色々対応形式を増やしたいですが、その度にライブラリパッケージのファイルサイズやビルドしてできる 実行ファイルのサイズが大きくなってしまうので、無闇に増やせない状態です・・・
メンテ
Re: BGMがゆっくりになる ( No.6 )
名前:にこよん 日時:2017/12/31 02:33

>DXライブラリの mp3 ファイルのヘッダ解析プログラムに >バグがあったことが原因でした m(_ _;m どのようなバグだったのか教えていただくことは可能でしょうか? 今まで沢山のファイルが正常に読み込めているのにごく稀にファイルが読み込めないというのがすごく不思議なので気になります ただ、具体的に説明されても分からなさそうなので可能であればざっくりで願いします >アップしていただいた mp3ファイルを正常に再生できるように修正したバージョンをアップしましたので、 >よろしければお試しください 正常に再生でました 修正ありがとうございます >wavファイルは無圧縮PCM形式の場合はコーデックの力を借りずに再生できますので >無圧縮PCM形式の wavファイルの場合は ogg に変換しなくて大丈夫です ありがとうございました 見分けれるソフトなどを探してみます >yumetodo さん >wavは可逆圧縮ではなく無圧縮では・・・ そうでしたか覚えなおしておきます まぁ言いたいことが伝わればいいのです >とりあえずopusはええぞと言いたい。MP3の1.5倍、aacの1.1倍良い(要出典) ググってみましたがよくわかりませんでした とりあえずMP3で困ってないので今のところ手は出さないでおきます
メンテ
Re: BGMがゆっくりになる ( No.7 )
名前:管理人 日時:2017/12/31 14:25

> どのようなバグだったのか教えていただくことは可能でしょうか? mp3ファイルは波形を何個ものブロックに分けて保存されていて、それぞれのブロックで MPEGやレイヤーのバージョンやビットレートやサンプリングレートやチャンネル数を指定できるようになっているのですが、 再生が遅くなってしまうファイルでは先頭のブロックが今までのDXライブラリの解析プログラムでは対応していないバージョンの ものとなっていて、最初のブロックをブロックとして認識できていなかったため、その後のブロックの読み込みが正常に行われず 本来ブロックのヘッダ情報ではない部分をヘッダ情報として読み込み、認識されたサンプリングレートがたまたま 32000Hz だったため、 ゆっくり再生されるサウンドハンドルとして読み込まれてしまっていました ( 本来ブロックのヘッダでもない箇所をヘッダとして解析して、それがたまたまヘッダとして問題の無い数値だったので 『ゆっくり再生されるサウンドハンドル』として読み込まれていました ) その『最初のブロック』はサンプリングレートやチャンネル数も最初のブロック以外のブロックと異なるため、最初のブロックだけ 読み飛ばすことで正常に読み込めるようになりましたが( 具体的には『全ブロックのヘッダを解析して、最も高いサンプリングレートと チャンネル数を持つブロック以外を無視する』という処理を実装しました、今回の mp3ファイルではサンプリングレート 44.1KHz、 チャンネル数 2 が一番高いサンプリングレートとチャンネル数なので、それに適合しないブロックを読み飛ばします )、 読み飛ばしているにも関わらず冒頭の部分が無くなることもなかったので 最初のブロックは私が知らない仕様の為の物( サムネイル画像や曲情報などの追加情報系 )なのかもしれません
メンテ
Re: BGMがゆっくりになる ( No.8 )
名前:にこよん (解決) 日時:2017/12/31 22:45

親切に詳しく解説していただきありがとうございましたm(__)m 同じところから落としたのにあれだけバージョンが異なってたのですか.... 疑問が解決できてすっきりです
メンテ

Page: 1 |

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

   クッキー保存