Cでは、PlaySound
エラーはスローされません...しかし、必要なファイルを再生する代わりに、ビープ音が鳴るだけです。
助言がありますか?
私は試した :
PlaySound("song1.wav", NULL, SND_ALIAS | SND_APPLICATION);
と:
PlaySound("song1.wav", NULL, SND_FILENAME);
しかし、私は同じ結果を得ました。
Cでは、PlaySound
エラーはスローされません...しかし、必要なファイルを再生する代わりに、ビープ音が鳴るだけです。
助言がありますか?
私は試した :
PlaySound("song1.wav", NULL, SND_ALIAS | SND_APPLICATION);
と:
PlaySound("song1.wav", NULL, SND_FILENAME);
しかし、私は同じ結果を得ました。
あなたが行ったように相対パスを使用する代わりに:
PlaySound("song1.wav", NULL, SND_FILENAME);
次のような絶対パスを使用します。
PlaySound("F:\\path\\to\\your\\song\\song1.wav", NULL, SND_FILENAME);
msdn.microsoft.com の PlaySound API の説明からの引用:
PlaySound
次のディレクトリでサウンド ファイルを検索します。現在のディレクトリ。Windows ディレクトリ。Windows システム ディレクトリ。PATH
環境変数にリストされているディレクトリ。ネットワークにマッピングされたディレクトリのリスト。関数が指定されたサウンドを見つけることができず、
SND_NODEFAULT
フラグが指定されていないPlaySound
場合は、代わりにデフォルトのシステム イベント サウンド (この場合は BEEP) を使用します。システムのデフォルト エントリもデフォルト サウンドも見つからない場合、関数はサウンドを生成せずに を返します
FALSE
。
そのため、ファイル ディレクトリ パスをPATH
Windows の環境変数に追加します。これで問題が解決するはずです。
OPと同じ状況で困っていて、解決策を見つけました。私の解決策は、wav ファイルのメタデータを削除することです。
投稿を参照すると、PlaySound() API は、有名なオーディオ ツールでエクスポートされた一部の wav ファイルを再生できません。(ProTools、CUBASE、StudioOne など)
そして、メタデータを排除することで機能します。ブログの投稿で、彼はいくつかの「問題のある」wave ファイルをSoundEngine(日本語)で開き、wav RIFF メタ情報を削除するために新しいファイルに「名前を付けて保存」するだけでした。