12

コーディングで音楽ファイルを再生しようとしましたが、失敗しました。.cpp ファイルを保存する同じフォルダーに音楽ファイルがあります。

誰かが私を助けることができますか?

私のコードは次のとおりです。

#include <iostream>  
#include <windows.h>

int main() { 
    PlaySound("kenny g.WAV", NULL, SND_ASYNC);    
}
4

8 に答える 8

13

絶対パスを使用し、ファイル名を送信していることを確認し (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
そのはずです。教えてください、ありがとう!

于 2009-10-14T10:40:45.443 に答える
7

-lwinmm をコンパイラ設定に追加してみてください。それは私のために働いた。それをコンパイラ オプション領域に入力するだけで機能します。

于 2013-02-24T21:56:43.140 に答える
1
int main() { 
    PlaySound("kenny g.WAV", NULL, SND_ASYNC); 
}

フラグを使用SND_ASYNCすると、プログラムをすぐに終了できます (そして終了します)。

PlaySound("kenny g.WAV", NULL, SND_SYNC);まずはうまくいくか試してみてください。

于 2009-10-14T10:44:25.160 に答える
1

絶対パスを使用して、パスエラーかどうかを確認できますか?

Ex: PlaySound("C:\\kenny g.WAV", NULL, SND_ASYNC); 
于 2009-10-14T10:28:02.813 に答える
0

パスについて言えば、パスが絶対パスでない場合、ソース ファイルの場所ではなく、データ ファイルが実行可能ファイルの場所である必要があります。

そして、ええ、まさにこの質問は9年前に尋ねられました;)

于 2009-10-14T10:50:50.477 に答える
0

PlaySound(TEXT("SystemStart"), NULL, SND_ALIAS); でテストできます。

于 2013-02-27T15:32:55.063 に答える
0

まだ解決されていない場合に備えて!前のコメントで説明した 2 つのヘッダー ファイルを含め、プロジェクトを必要なライブラリにリンクし、サウンド ファイルを .exe ファイルと同じフォルダーに配置する必要があります (フル パスを使用していない場合)。

于 2013-09-05T04:19:07.527 に答える