winapi - 从 Visual C++ 播放 mp3 的最简单方法

标签 winapi mp3 directshow audio mci

几年前,我围绕 DShow/DSound 编写了一些实用程序库,让我可以在 Windows C++ 应用程序中播放 MP3。这仍然是在 C++/MFC 应用程序中执行此操作的正常方法,还是 DirectX 的一个区域已包含在通用 Windows API 中?

动机很简单,我们对 WAV 使用标准的 Windows PlaySound 方法,并希望能够使用类似的简单 API 播放 MP3,该 API 要么由 Windows 提供,要么由我们编写的用于包装更复杂功能的东西。

编辑:这是一个大型的商业闭源项目。而且我们只想简单地玩玩,花很多钱买一个图书馆是行不通的。

最佳答案

您可以使用 DirectShow 但它不再是 DirectX 的一部分,也可以依赖第三方库,如 Bass , FMod , mpg123甚至 libwmp3 .

如果你不想再使用 DirectShow(但如果你现有的代码继续工作,为什么要改变?),你可以使用 MCI :

mciSendString("open la_chenille.mp3 type mpegvideo alias song1", NULL, 0, 0); 
mciSendString("play song1", NULL, 0, 0);
mciSendString("close song1", NULL, 0, 0);

关于winapi - 从 Visual C++ 播放 mp3 的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2049825/

相关文章:

c++ - 如何使用 BCrypt 进行 RSA(非对称加密)

c# - 任何示例项目都使用 DirectShow.NET 库在同一项目中捕获图像和视频?

delphi - 是否有一个简单的 DirectShow 过滤器可以将完全相同格式的音频混合在一起?

c++ - 包含 windows.h 和 wingdi.h 时出现 "GradientFill was not declared in this scope"错误

c++ - Win32 上的联锁操作与 XXX::atomic

delphi - Unicode/WideString 气球托盘

html - 适合音乐网站卖歌的 mp3 播放器好吗?

android - 如何从服务器下载一部分mp3?

java - 如何使用java检索mp3文件的缩略图