使用NAudio库播放原始文件

使用NAudio库播放原始文件,audio,audio-streaming,naudio,Audio,Audio Streaming,Naudio,你好,我有以下代码来播放原始文件。我的原始文件持续时间是25秒。这段代码工作正常,但过了一段时间,我的程序播放原始文件的速度非常慢,几乎50%的速度,当我重新启动电脑并运行程序时,我的原始文件持续时间增加了36秒,恢复正常工作。我需要每一小时重新启动电脑才能正常工作请检查我的代码有什么问题这是我的代码 Try Dim rawStream = File.OpenRead("C:\myFile.raw") Dim waveFormat = New NAudio.Wave.Wav

你好,我有以下代码来播放原始文件。我的原始文件持续时间是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

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