在 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;

我还在其中添加了 SN​​D_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++ 中播放音乐文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在应用程序中播放带有音乐文件的播放列表?

安卓音乐播放器

音乐播放器没有声音怎么办?

android - 如何在我的音乐播放器中从文件管理器播放 mp3 文件?

微信公众号文章音乐自动播放

Python:使用不同的文件在后台播放音乐播放列表