gpt4 book ai didi

vb.net - 使用音量控制在 VB.net 中播放音频文件 (.wav)

转载 作者:行者123 更新时间:2023-12-02 22:19:56 25 4
gpt4 key购买 nike

编辑:在下面的 self 回答中解决。

我找遍了所有地方,但找不到任何可用于播放带有音量控制的音频文件的东西。我试过 XNA; SLIMDX 和“Microsoft.VisualBasic.Devices.Audio”但没有任何帮助。我发现有音量控制的选项太复杂了,我不知道如何使用,我目前的方法除了播放(有或没有循环的背景,或暂停执行直到结束播放)并停止。

这是我当前的代码:

Dim AD As New Microsoft.VisualBasic.Devices.Audio
Sub Play()
Dim af() As Byte = IO.File.ReadAllBytes("music.wav")
AD.Play(af, AudioPlayMode.BackgroundLoop)
End Sub

这会在后台循环“music.wav”,但我无法暂停/寻找它或控制音量。是否有任何简单的方法(如上面)从缓冲区播放音频文件并控制音量?我已经查看了所有内容,但没有发现任何适合我的项目的东西。

System: Win7 64-bit

VS version: 2010

Language: VB.net

还有一件事,首先缓冲音频也是我的解决方案所需要的(正如您在我当前的代码中看到的那样)

有人有办法解决这个问题吗? :)

最佳答案

经过一番搜索后我找到了答案,所以这是我为我的问题找到的解决方案:

下载Naudio并将引用添加到您的项目。

下面的代码是如何使用它从缓冲区加载音频:

Dim Wave1 As New NAudio.Wave.WaveOut 'Wave out device for playing the sound

Dim xa() As Byte = IO.File.ReadAllBytes("C:\YourPath\YourWave.wav") 'Your Buffer

Sub PlaySound()

Dim data As New IO.MemoryStream(xa) 'Data stream for the buffer

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

Wave1.Volume = 0.1 'Sets the Volume to 10%

Wave1.Play()

End Sub

WaveFileReader 可以更改为您需要的任何阅读器(即用于“.mp3”文件的 MP3 阅读器)以加载您的音频文件,但代码按原样用于加载“.wav”文件。

哦还有,别忘了

WaveOut.Dispose()

完成后避免出错。

我希望我的研究对某些人有所帮助:)

关于vb.net - 使用音量控制在 VB.net 中播放音频文件 (.wav),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12609782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com