使用NAudio库播放原始文件

时间:2014-02-17 05:35:29

标签: audio audio-streaming naudio

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

答案 0 :(得分:1)

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