audio - 使用 NAudio 库播放原始文件

标签 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

最佳答案

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

关于audio - 使用 NAudio 库播放原始文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21821489/

相关文章:

java - 为什么调用clip.open后我的jvm崩溃

android - Android应用程序录制的音频不允许whatsapp发送音频

c# - 当listView中的dateTime == dateTime.Now时播放声音

audio - 使用MediaFoundationReader时出现COMException

c# - 使用 NAudio 将音频的播放同步到计时器

c# - 如何在 MP3 文件的任意位置插入特定持续时间的静音?

c++ - 检测音频流中的匹配声音

python - 使用 ossaudiodev 进行播放

javascript - 在 HTML 5 mp3 播放器 (audio.js) 中播放 SoundCloud 流 uri

ios - ios中的实时音频输入和输出流