コーディングで音楽ファイルを再生しようとしましたが、失敗しました。.cpp ファイルを保存する同じフォルダーに音楽ファイルがあります。
誰かが私を助けることができますか?
私のコードは次のとおりです。
#include <iostream>
#include <windows.h>
int main() {
PlaySound("kenny g.WAV", NULL, SND_ASYNC);
}
絶対パスを使用し、ファイル名を送信していることを確認し (SND_FILENAME フラグを使用)、サウンド ファイルを再生するのに十分な時間プログラムを一時停止します (たとえば、getchar() を使用します)。プロジェクト設定で winmm.lib ライブラリをリンクし、ヘッダーに windows.h と mmsystem.h を #include する必要があります。
#include <windows.h>
#include <mmsystem.h>
int main() {
PlaySoundA((LPCSTR) "C:\\kenny g.WAV", NULL, SND_FILENAME | SND_ASYNC);
getchar();
}
API: http://msdn.microsoft.com/en-us/library/ms712879(VS.85).aspx
そのはずです。教えてください、ありがとう!
-lwinmm をコンパイラ設定に追加してみてください。それは私のために働いた。それをコンパイラ オプション領域に入力するだけで機能します。
int main() {
PlaySound("kenny g.WAV", NULL, SND_ASYNC);
}
フラグを使用SND_ASYNC
すると、プログラムをすぐに終了できます (そして終了します)。
PlaySound("kenny g.WAV", NULL, SND_SYNC);
まずはうまくいくか試してみてください。
絶対パスを使用して、パスエラーかどうかを確認できますか?
Ex: PlaySound("C:\\kenny g.WAV", NULL, SND_ASYNC);
パスについて言えば、パスが絶対パスでない場合、ソース ファイルの場所ではなく、データ ファイルが実行可能ファイルの場所である必要があります。
そして、ええ、まさにこの質問は9年前に尋ねられました;)
PlaySound(TEXT("SystemStart"), NULL, SND_ALIAS); でテストできます。
まだ解決されていない場合に備えて!前のコメントで説明した 2 つのヘッダー ファイルを含め、プロジェクトを必要なライブラリにリンクし、サウンド ファイルを .exe ファイルと同じフォルダーに配置する必要があります (フル パスを使用していない場合)。