Hola, estoy haciendo un programa que usa NAudio (http://naudio.codeplex.com/) para reproducir sonidos.
Pues bien, me gustaría que cada sonido se pudiera reproducir a volumen diferente, pero sólo consigo cambiar el volumen a todos los sonidos a la vez, aquí va todo el código:
Código vb:
Ver originalImports NAudio.Wave
Public Class Form1
Private Sound1 As WaveOut
Private Sound2 As WaveOut
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Label3.Text = Val(Volume1.Value) / 10
Label4.Text = Val(Volume2.Value) / 10
End Sub
Private Sub Volume1_Scroll(sender As Object, e As EventArgs) Handles Volume1.Scroll
Label3.Text = Val(Volume1.Value) / 10
Sound1.Volume = Val(Volume1.Value) / 10
End Sub
Private Sub Volume2_Scroll(sender As Object, e As EventArgs) Handles Volume2.Scroll
Label4.Text = Val(Volume2.Value) / 10
Sound2.Volume = Val(Volume2.Value) / 10
End Sub
Private Sub Play1_Click(sender As Object, e As EventArgs) Handles Play1.Click
Dim inputStream As WaveChannel32
Dim readerhum As New WaveFileReader(Application.StartupPath & "\media\2010Hum.wav")
inputStream = New WaveChannel32(readerhum)
Sound1 = New WaveOut()
Sound1.Init(readerhum)
' Aquí determinamos el volumen en concreto de Hum, pero afecta también a
Sound1.Volume = Volume1.Value
Sound1.Play()
' Activar el deslizador ahora porque usarlo antes de iniciar el sonido provoca un error.
Volume1.Enabled = True
End Sub
Private Sub Play2_Click(sender As Object, e As EventArgs) Handles Play2.Click
Dim inputStream As WaveChannel32
Dim reader As New WaveFileReader(Application.StartupPath & "\media\Drum.wav")
inputStream = New WaveChannel32(reader)
Sound2 = New WaveOut
Sound2.Init(reader)
Sound2.Volume = Volume2.Value
Sound2.Play()
' Activar el deslizador ahora porque usarlo antes de iniciar el sonido provoca un error.
Volume2.Enabled = True
End Sub
End Class
Me explico un poco mejor, el resultado debe ser este: dos botones, cada uno reproduce un sonido diferente, y dos trackbars, cada una controla el volumen de un solo sonido. Eso es lo que hecho (obviamente sin lograr que los controles de volumen sean independientes) en el código fuente anterior como podéis ver en el proyecto del que pongo el enlace a continuación:
Enlace al proyecto entero de ejemplo: https://www.dropbox.com/s/zhynzq3xgaw1cyd/Pruebas.zip