加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 17:28:58 所属栏目:百科 来源:网络整理
导读:下面的代码适用于一些wav文件,但我得到的是“InvalidOperationException未处理.Message = Sound API仅支持播放PCM wave文件.” var webClient = new WebClient();webClient.DownloadFile(url,fileName);var fileSound = new SoundPlayer(fileName);fileSound
下面的代码适用于一些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库.它很棒

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读