【问题标题】:NAudio change volume in runtimeNAudio 在运行时改变音量
【发布时间】:2013-11-30 15:43:14
【问题描述】:

我想在运行时更改音频流的音量。 我使用这段代码: 公开交易量为单一 = 0.01 将 Wave1 调暗为新的 NAudio.Wave.WaveOut

Dim xa() As Byte = IO.File.ReadAllBytes("C:\Song - Come Out and Play.wav")

Sub PlaySound()

    Dim data As New IO.MemoryStream(xa)

    Wave1.Init(New NAudio.Wave.BlockAlignReductionStream(NAudio.Wave.WaveFormatConversionStream.CreatePcmStream(New NAudio.Wave.WaveFileReader(data))))

    Wave1.Volume = Volume

    Wave1.Play()

End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    PlaySound()
End Sub

但是如何在运行时更改音量? 当我单击带有

的按钮时,它不会改变
Volume = 2.0

为什么?

谢谢。

第二个问题:我必须如何更改此代码才能播放 MP3 而不是 WAV? 因为WAV太大了..

谢谢你们两个:)

对不起,我的英语不好。

问候,勒内 :)

【问题讨论】:

    标签: naudio


    【解决方案1】:

    关于音量的第一个问题由 Mark 回答 - 音量在 0.0 <= volume <= 1.0 范围内,因此将音量设置为 2.0 无效。

    关于如何使用 MP3 文件...

    如果您输入的数据是 MP3 而不是 WAV,您可以在代码中将 WaveFileReader 替换为 Mp3FileReader。如果数据始终来自文件,您可以改用 new AudioFileReader(filename) 并让它计算出压缩格式是什么。

    这是您使用 MP3 而不是 WAV 的代码:

    Public Volume as Single = 0.01
    
    Dim Wave1 As New NAudio.Wave.WaveOut
    
    Dim xa() As Byte = IO.File.ReadAllBytes("C:\Song - Come Out and Play.mp3")
    
    Sub PlaySound()
    
        Dim data As New IO.MemoryStream(xa)
    
        Wave1.Init( _
            New NAudio.Wave.BlockAlignReductionStream( _
                NAudio.Wave.WaveFormatConversionStream.CreatePcmStream( _
                    New NAudio.Wave.Mp3FileReader(data) _
            )))
    
        Wave1.Volume = Volume
    
        Wave1.Play()
    
    End Sub
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        PlaySound()
    End Sub
    

    【讨论】:

    • 谢谢,效果很好!但是 Volume = 0.9 在运行时不会改变音量:(
    【解决方案2】:

    volume 属性的最大值为 1.0,表示 1.0。如果您尝试将其设置得更高,最新的 NAudio 将引发异常。

    【讨论】:

    • 但是 Volume = 0.9 在运行时不会改变音量:(
    猜你喜欢
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2020-05-15
    • 1970-01-01
    相关资源
    最近更新 更多