You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++中PlaySound播放Windows错误音效而非目标MP3的问题求助

解决PlaySound无法播放MP3的问题

根本原因

PlaySound函数并不支持MP3格式,它仅能播放WAV、WMA等Windows原生支持的音频格式,这就是你调用后触发系统错误音效的核心原因。

替代方案:使用MCI播放MP3

Windows的媒体控制接口(MCI)支持MP3这类格式,以下是可直接运行的测试代码:

#include <Windows.h>
#include <mmsystem.h>
#include <conio.h>

#pragma comment(lib, "Winmm.lib")

int main()
{
    // 打开目标MP3文件并设置别名
    mciSendString(L"open \"C:\\Users\\niko\\Desktop\\key01 F.mp3\" type mpegvideo alias piano_sound", NULL, 0, NULL);
    // 开始播放
    mciSendString(L"play piano_sound", NULL, 0, NULL);

    // 等待用户按下任意键再退出,防止程序直接终止导致音频中断
    _getch();

    // 关闭文件释放资源
    mciSendString(L"close piano_sound", NULL, 0, NULL);
    return 0;
}

注意事项

  • 路径需使用宽字符串前缀L,避免编码解析错误;如果用多字节字符串,可通过MultiByteToWideChar函数转换
  • 必须保留等待输入的逻辑,否则程序执行完毕后会立即结束,音频播放会被强制中断
  • 播放完成后务必调用close命令释放资源,避免内存泄漏

对原有尝试的说明

  • 路径分隔符用/或者\\都没问题,你的路径写法本身没有错误
  • 重复引入头文件不会影响功能,问题根源完全在于PlaySound的格式支持限制

内容的提问来源于stack exchange,提问作者Merd Ceferzade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 00:42:28