我想在运行时更改我的audiostream的音量。 我用这个代码: 单身公共量= 0.01 Dim Wave1 As New 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很大..
感谢两者:)
抱歉我的英语不好。
此致,René:)
答案 0 :(得分: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
答案 1 :(得分:0)
volume属性的最大值为1.0,表示1.0。如果您尝试将其设置得更高,最新的NAudio将抛出异常。