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

2023-11-30

以下代码适用于某些 wav 文件,但适用于其他文件时,我得到“InvalidOperationException 未处理。Message=Sound API 仅支持播放 PCM 波形文件。”

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 下载然后在本地播放),或者可能是一种与 PlaySync() 不同的播放这些文件的方式...


查看 mitov 的 audiolab 库。效果很好

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何即时播放非 PCM 文件或将其转换为 PCM? 的相关文章

  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • 在 Delphi 中使用 XML(将特定数据返回到变量)

    过去几天我一直在尝试使用 Delphi 2010 和 MSXML 我是一个极端的新手 需要一点指导 var MemoryStream TMemoryStream XMLPath String sName String XMLDoc vari
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • 石和磅的格式正确吗?

    我有一个图表 用于显示重量 以英石和磅 lbs 为单位 该图表由记录中的数据填充 对于权重 数据类型为 Double 记录数据是在运行时编辑的 我需要知道一种正确格式化输入数据的方法 为了更好地理解 首先看一下这些示例值 它们表示为石和磅
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么

随机推荐

  • 如何从 Dataframe 中删除页眉和页脚?

    我正在读取一个文本 不是 CSV 文件 其中包含页眉 内容和页脚 使用 spark read format text option delimiter load file 我可以通过以下方式访问标题df first 有没有什么接近的df l
  • Java,需要一个while循环才能达到eof。即 while !eof,继续解析

    我目前有一个正在工作的解析器 它解析一次文件 不是我想要的 然后将解析后的数据输出到文件中 我需要它继续解析并附加到同一输出文件 直到输入文件末尾 看起来像这样 try my code parsing the data and append
  • 发送到 webapp 的 POST 请求的最大大小

    我在 Google Apps 脚本项目中经常使用 doPost 函数回调 最近一直在寻找有关 GAS Web 应用程序接受 POST 请求的最大大小的文档 但无济于事 在限制和配额页面中 它提到了 url fetch 相关数据 我认为这些数
  • 元组从列表中重复消除

    考虑以下元组列表 val input List A B C B B A 并假设元素 A B and B A 是相同的 因此是重复的 从上面的列表中消除重复的有效方法是什么 最好是在 Scala 中 这意味着所需的输出是另一个列表 val d
  • pandas 多索引排序特定字段

    I obtained a multi index in pandas by running series describe for a grouped dataframe How can I sort these series by mod
  • 将 System.ComponentModel 默认值属性内的 DateTime 属性的默认值设置为 DateTime.Now

    有谁知道如何使用 System ComponentModel DefaultValue 属性指定 DateTime 属性的默认值 例如我尝试这个 DefaultValue typeof DateTime DateTime Now ToStr
  • 父级和子级复选框

    div div
  • 类型错误:“int”对象不可调用

    鉴于以下情况 a 23 b 45 c 16 round a b 0 9 c 运行上面的命令会输出错误 TypeError int object is not callable 如何将输出舍入为整数 在代码的其他地方 您有类似这样的内容 ro
  • Makefile - 找不到共享库

    我有一个 C Linux 项目的 Makefile MODE dbg DIR somdir MODE SRC FILES a cpp b cpp H FILES a h LDFLAGS L DIR lib linux Wl R ORIGIN
  • 如何优化 vlookup 以获得高搜索次数? (VLOOKUP 的替代方案)

    我正在寻找 vlookup 的替代方案 在感兴趣的上下文中提高性能 上下文如下 我有一个很大的 key data 数据集 100 000 条记录 我想对数据集执行大量VLOOKUP操作 典型用途是对整个数据集重新排序 我的数据集没有重复的键
  • Android 地图 API v2 中的彩色折线

    我想在 android 地图 api 版本 2 中绘制折线 我希望它有多种颜色 最好有渐变 但在我看来 折线只允许有单色 我怎样才能做到这一点 我已经有了 api v1 覆盖层来绘制我喜欢的内容 所以大概我可以重用一些代码 public c
  • 在Python中获取具有预先指定扩展名的文件基名

    我有以下字符串 path1 path2 foo bar qux txt 我想要做的是通过指定扩展名来提取基本名称 如果我将扩展定义为 bar qux txt那么基本名称是 foo 那么如果扩展名是 qux txt那么基数是 foo bar
  • Matplotlib 视频创建

    编辑 欧内斯特的重要性提供了答案 但是我仍然邀请大家解释 为什么savefig逻辑不同于animation logic 我想制作视频matplotlib 我浏览了手册和示例 但我就是不明白 关于matplotlib 我总是复制示例 因为经过
  • 关注 R 中的startsWith 和多种模式

    我注意到一个问题或疑虑startsWith 功能 以下代码显示两个不同的选择 第一个行为正常 是这样的代码块 dt test lt data table a c abcd poo abla ba id c 1 2 3 4 dt test s
  • 如何将 iOS 设备键盘更改为特定语言

    在iOS中 开发者可以获取当前设备语言和区域设置 但是 如果我们想根据用户的偏好将键盘设置为特定语言 区域设置 当用户位于应用程序的不同部分时 该怎么办 在我的应用程序中 有多种语言 我希望向用户显示阿拉伯语键盘 例如 当用户位于阿拉伯语部
  • 序列化 Drawable 时出现问题

    我有一个对象 它具有三个字段 两个字符串和一个Drawable public class MyObject implements Serializable private static final long serialVersionUID
  • 按作者列出类别〜WITH COUNTER〜(Wordpress)

    这是我得到的代码 它给出了给定作者已发表的类别的列表 但是 我非常希望类别名称旁边有一个数字 告诉作者在不同类别中发表了多少篇文章 有谁知道一个技巧吗 谢谢
  • 无需安装即可使用 SqlServer CE

    Given 干净的机器 不存在 SQL Server CE 一组 sdf 文件 Sql Server CE 数据库 不管它们是如何到达那里的 相关 Sql Server CE 的 DLL sqlceca35 dll sqlcecompact
  • 使用 angularjs 过滤两个选定日期之间的表数据时出现问题

    我正在根据两个选定的日期过滤表格内容 它确实过滤了日期 但结果不正确 dateRange Filter 写在控制器中 生产控制员 angular module app controller ProductionController scop
  • 如何即时播放非 PCM 文件或将其转换为 PCM?

    以下代码适用于某些 wav 文件 但适用于其他文件时 我得到 InvalidOperationException 未处理 Message Sound API 仅支持播放 PCM 波形文件 var webClient new WebClien