没有流或缓冲区的 C# 音频输出
Posted
技术标签:
【中文标题】没有流或缓冲区的 C# 音频输出【英文标题】:C# audio output without a stream or buffer 【发布时间】:2013-04-05 02:03:47 【问题描述】:我正在开发一个想要输出音频的程序。我会使用 System.Media.SoundPlayer,只是数据是动态实时生成的。我真的只想将扬声器设置为单字节值,并在需要时更改该值。任何缓冲区或流都会使这变得过于复杂。
【问题讨论】:
即使在最低级别也需要缓冲区,因为在音频硬件上允许您一次发送一个样本。 【参考方案1】:你不能。 System.Media.SoundPlayer
适用于流,可以根据需要动态生成或从文件生成。
学习使用流。它们并不复杂。当然比动态生成音频要简单。
【讨论】:
覆盖Read()
并一次返回一个样本并让SoundPlayer
输出它是非常简单的。
@DanielMošmondor,一个样本是的,但不是 OP 要求的一个字节。 SoundPlayer
需要有效的 wav 数据并彻底验证标头。
Op 必须知道音频粒度是一个样本而不是一个字节。而且 wav 标头很容易被伪造:)以上是关于没有流或缓冲区的 C# 音频输出的主要内容,如果未能解决你的问题,请参考以下文章