【问题标题】:Bug with NAudio, play mp3 in MemoryStream, VBNAudio 的错误,在 MemoryStream,VB 中播放 mp3
【发布时间】:2015-06-24 17:28:52
【问题描述】:

我有一个功能可以从运行良好的资源中读取我的 mp3。

不幸的是,如果我将鼠标按在按钮上 30、40 或 50 次,最终会导致 waveOut.init 崩溃:( {" AlreadyAllocated calling waveOutOpen "} )

Public waveOut As WaveOut = New WaveOut

Private Sub Panel_Bouton_MouseEnter(sender As Object, e As EventArgs) Handles Panel_Bouton.MouseEnter
    Play_Sound()
End Sub

Public Sub Play_Sound()
    Dim mp3file As MemoryStream = New MemoryStream(My.Resources.Clic)
    'Clic.mp3 is in my Resources
    Dim mp3Reader As Mp3FileReader = New Mp3FileReader(mp3file)

    If waveOut.PlaybackState = PlaybackState.Playing Then
        waveOut.Stop()
        ' I tried this but no effect...
    End If

    waveOut.Init(mp3Reader)
    waveOut.Play()
End Sub

【问题讨论】:

    标签: vb.net naudio


    【解决方案1】:

    我建议不要在WaveOut 上不断调用 Init。相反,只需要一个(看起来你也可以只拥有一个Mp3FileReader),然后在Play_Sound 函数中,设置mp3Reader.Position = 0 并重新启动你的WaveOut 实例(如果它停止了)。 (我从您的代码 sn-p 中假设您永远不想同时播放多个声音实例)。

    【讨论】:

    • 谢谢,这样更好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    • 2011-01-30
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    相关资源
    最近更新 更多