NAudio - wav 的流式字节 [] 使其播放缓慢

Posted

技术标签:

【中文标题】NAudio - wav 的流式字节 [] 使其播放缓慢【英文标题】:NAudio - Streaming byte[] of wav makes it play slow 【发布时间】:2010-06-11 08:49:23 【问题描述】:

我正在尝试从 wav 文件中读取字节并将其发送到流中,但播放速度很慢。 你能帮我知道填充字节[]的正确方法吗?

感谢您的帮助。

【问题讨论】:

【参考方案1】:

您是否使用 NAudio 来读取 WAV 文件和播放数据? 您需要确保在两端使用相同的 WaveFormat

【讨论】:

嗨,马克,感谢您的回复。我试图与你取得联系。我很高兴 :) 好吧,我正在尝试拦截 mic datarecieved 缓冲区字节 [] 并将一个新的 wav 文件作为字节 [] 传递。将新声音数据作为 byte[] 传递时,我使用的是 File.ReadAllBytes。您能否建议一种以正确方式发送 byte[] 的好方法? 嗨,马克,WaveStream outStream = new WaveFileReader("test.wav"); outStream = WaveFormatConversionStream.CreatePcmStream(outStream); outStream = new BlockAlignReductionStream(outStream); // 减少波动 byte[] buffer = new byte[outStream.Length]; outStream.Read(buffer, 0, (int)outStream.Length - 1); Array.Copy(buffer, 0, newSoundByteArray, startIndex, buffer.Length); newSoundByteArray 被发送到流并且播放速度很慢。波形匹配。 如何播放数据? 在 SkypeFX 的 MicInterceptor 类中,我将此 newSoundByteArray 分配给 args.Buffer 并使用: bufferStream.SetLatestInBuffer(args.Buffer); //通过效果处理出来 OutputStream.Read(args.Buffer, 0, args.Buffer.Length); // 回放 outStream.Write(args.Buffer, 0, args.Buffer.Length);谢谢。 好的,我不知道你在使用 SkypeFx。 Skype 自己播放。您必须提供 16 位 44.1kHz 单声道。将音频转换为该格式,然后再将其传回 Skype。

以上是关于NAudio - wav 的流式字节 [] 使其播放缓慢的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C# NAudio 操作字节?

Naudio wav格式问题

字节到 sbytes 并返回 - C# NAudio

如何将 NAudio WaveStream 写入内存流?

NAudio - 读取和写入 Wav 文件

使用 NAudio 将 g722 音频转换为 WAV