微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 如何播放非PCM文件或将其转换为PCM?

下面的代码适用于一些wav文件,但我得到的是“InvalidOperationException未处理.Message = Sound API仅支持播放PCM wave文件.”

var webClient = new WebClient();
webClient.DownloadFile(url,fileName);
var fileSound = new Soundplayer(fileName);
fileSound.PlaySync();

有没有办法以编程方式检查wav文件是否“坏”(不是PCM波形文件),然后根据需要进行转换?

奇怪的是,代码在传统的Delphi应用程序中运行 – 所有的wav文件都可以正常运行.这是Delphi代码

filename := GetEnvironmentvariable('TEMP')+'\archieAndDingbat.wav';
URLDownloadToFile(nil,PChar(url),PChar(filename),nil);
PlaySound(filename);

我查看了资源管理器中两个文件属性,我发现确实存在差异.对于播放的文件,其音频格式为PCM;不会参加的是CCITT u-Law.

所以…我需要一种方法在下载这些文件后从CCITT u-Law转换为PCM(它们从网址下载然后在本地播放)或者可能是播放这些文件的不同方式而不是PlaySync() …

解决方法

看看mitov的audiolab库.它很棒

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐