在 C++ 中播放音乐文件
Posted
技术标签:
【中文标题】在 C++ 中播放音乐文件【英文标题】:Play Music File in C++ 【发布时间】:2014-06-07 00:24:10 【问题描述】:我正在创建自己的闹钟,我想使用 c/c++ 播放自己的音乐文件。我能找到的唯一可以播放任何东西的 C++ 函数是 PlaySound(),但我似乎无法让它工作,而且我不确定我做错了什么。我已经包含了“Winmm.lib”,它可以让我播放默认声音,但现在我正在尝试播放我的音乐文件。 (以 wma 格式)。
这是我目前的代码:
#include <Windows.h>
int main()
PlaySound(TEXT("test.wma"), NULL, SND_FILENAME);
return 0;
我还在其中添加了 SND_NODEFAULT 标志,这样我就可以停止听到默认声音了。
【问题讨论】:
“似乎无法让它工作”是什么意思?发生什么了?它有任何声音吗?该函数是否返回错误(您未在此处检查)?也只是把它扔在那里,但很容易有other C++ functions可以播放媒体文件。 可能 test.wma 不在您程序的当前目录中,因此 PlaySound() 函数找不到它。作为测试,请尝试提供文件的完整路径,例如类似 PlaySound(TEXT("C:\\Users\\Vince\\MySoundsFolder\\test.wma"), NULL, SND_FILENAME); 考虑 C++ 的 Stk 声音库 int ret = GetLastError();在 playsound() 语句之后写一行。并检查 ret 的值。 【参考方案1】:据我所知PlaySound
仅支持.wav
文件。
如果您想玩.wma
,您需要使用Audio Compression Manager 或third party audio libraries 之一。
【讨论】:
【参考方案2】:在 VC++ 中尝试使用简单的 c++ 代码。
#include <windows.h>
#include <iostream>
#pragma comment(lib, "winmm.lib")
int main(int argc, char* argv[])
std::cout<<"Sound playing... enjoy....!!!";
PlaySound("C:\\temp\\sound_test.wav", NULL, SND_FILENAME); //SND_FILENAME or SND_LOOP
return 0;
【讨论】:
以上是关于在 C++ 中播放音乐文件的主要内容,如果未能解决你的问题,请参考以下文章