使用 NAudio 库播放原始文件

Posted

技术标签:

【中文标题】使用 NAudio 库播放原始文件【英文标题】:Play Raw File Using NAudio Library 【发布时间】:2014-02-17 05:35:28 【问题描述】:

您好,我有以下代码来播放原始文件。我的原始文件持续时间是 25 秒。这段代码工作正常,但有时我的程序播放原始文件非常慢,几乎 50% 的速度,当我重新启动我的电脑并运行我的程序再次正常工作时,我的原始文件持续时间增加了 36 秒。我需要每隔一小时重新启动一次电脑才能正常工作请检查我的代码有什么问题这是我的代码

   Try
    Dim rawStream = File.OpenRead("C:\myFile.raw")
    Dim waveFormat = New NAudio.Wave.WaveFormat(8000, 16, 1)
    Dim rawSource = New RawSourceWaveStream(rawStream, waveFormat)
    Dim audioBufferSize = 320
    Dim offset As Integer = 0
    Dim buffer As Byte() = New Byte(audioBufferSize - 1) 
    Dim buffer2 As Byte() = New Byte(320) 
    While (rawSource.Read(buffer2, offset, audioBufferSize) > 0)
        msport.Write(buffer2, offset, audioBufferSize)
        Thread.Sleep(20)
    End While
Catch ex As Exception
    MsgBox(ex.ToString)
End Try

【问题讨论】:

【参考方案1】:

NAudio 在您的代码示例中根本没有任何效果。您所做的只是从文件中读取数据,并将其发送到串行端口。 RawSourceWaveStream 只是将 WaveFormat 附加到文件流,但没有读取该流。无论您使用何种设备来收听您通过串行端口发送的音频数据,都将具有它所期望的音频格式。你需要找出那是什么。然后您可以使用 NAudio 将音频转换为正确的格式,如果它尚未处于正确的采样率/通道数(这将是音频以 50% 的速度播放的两个最可能的原因)

【讨论】:

以上是关于使用 NAudio 库播放原始文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 NAUDIO 播放 Dialogic ADPCM 音频文件

wav 文件连接异常与 naudio 库

使用 NAudio 播放 IMA ADPCM 音频

NAudio - 从 Stream 播放 MIDI

使用 NAudio 在 C# 中播放 ohLibSpotify pcm 数据流

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