为何使用SoundPlayer的控制台应用无法播放WAV文件?
解决SoundPlayer无法播放WAV文件的问题
一、先排查文件与路径问题
- 确认WAV文件编码:SoundPlayer仅支持PCM编码的无压缩WAV,不支持MP3转码、ADPCM等压缩格式的WAV。可以用系统录音机录制一个测试WAV,替换路径测试。
- 验证路径有效性:确保
C:\mypath\new.wav真实存在,无拼写错误。可以临时换成绝对测试路径(如@"C:\Users\YourName\Desktop\test.wav"),确认文件可被系统播放器正常打开。
二、代码调整(解决异步播放与程序退出问题)
Play()是异步方法,控制台程序会在播放开始前直接退出,导致无法听到声音。同时加入异常捕获可定位问题:
using System; using System.Media; namespace PlayingSystemSounds { internal class Program { static void Main(string[] args) { try { SoundPlayer simpleSound = new SoundPlayer(@"C:\mypath\new.wav"); // 同步加载文件,避免异步加载未完成就播放 simpleSound.Load(); // 同步播放,阻塞程序直到播放完成 simpleSound.PlaySync(); } catch (Exception ex) { Console.WriteLine("播放错误:" + ex.Message); } // 等待输入,防止程序直接退出 Console.ReadKey(); } } }
三、系统层面排查
- 确认默认音频设备:检查系统声音设置中的默认播放设备是否为当前正在使用的设备(如耳机、扬声器),并测试该设备可播放其他音频文件。
- 权限检查:如果是Windows 10/11,确保程序未被系统限制音频访问(控制台程序一般无需额外权限,但可排查系统隐私设置中的音频权限)。
内容的提问来源于stack exchange,提问作者Rod
相关产品推荐
相关产品推荐

