gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 12:31:58 26 4
gpt4 key购买 nike

以下代码适用于某些 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 文件都可以正常播放。这是德尔福代码:

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

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

所以...我要么需要一种方法在下载这些文件后即时从 CCITT u-Law 转换为 PCM(它们是从 url 下载然后在本地播放),要么可能需要一种不同的方式来播放这些文件播放同步() ...

最佳答案

查看 mitov 的 audiolab 库。效果很好

关于c# - 如何播放非 PCM 文件或将其即时转换为 PCM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12393707/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com