[英]How to PlaySound in C++ using Windows API?
我嘗試在編碼中播放音樂文件,但失敗了。 我將我的音樂文件放在保存.cpp文件的同一文件夾中。
有人能幫我嗎?
我的代碼是:
#include <iostream>
#include <windows.h>
int main() {
PlaySound("kenny g.WAV", NULL, SND_ASYNC);
}
您需要使用絕對路徑,確保您正在發送文件名(使用SND_FILENAME標志),並暫停程序足夠長的時間來播放聲音文件(例如,使用getchar())。 您需要在項目設置中鏈接winmm.lib庫,並在標題中鏈接#include windows.h和mmsystem.h。
#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添加到編譯器設置中。 它對我有用。 只需在編譯器選項區域中鍵入它,它就可以工作。
你可以使用絕對路徑並檢查它是否是路徑錯誤?
Ex: PlaySound("C:\\kenny g.WAV", NULL, SND_ASYNC);
int main() {
PlaySound("kenny g.WAV", NULL, SND_ASYNC);
}
使用SND_ASYNC
標志,您的程序可以(並且它將)立即終止!
試試PlaySound("kenny g.WAV", NULL, SND_SYNC);
首先看它是否有效。
你可以通過PlaySound(TEXT(“SystemStart”),NULL,SND_ALIAS)進行測試;
說到路徑,您的數據文件應該是可執行文件的位置,而不是源文件的位置,如果路徑不是絕對的。
是的,9年前這個問題已被提出 ;)
以防萬一尚未解決! 您需要包含前面注釋中提到的兩個頭文件,將項目鏈接到所需的lib並將聲音文件放在與.exe文件相同的文件夾中(如果您沒有使用完整路徑)
試試這個代碼對我有用。 另外對於code :: Block在鏈接器設置中使用winmm。
#include <iostream>
#include <windows.h>
#include <MMSystem.h>
int main(){
PlaySound(TEXT("your file path.wav") , NULL , SND_SYNC) ;
return 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.