Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: [VB2008] Äänenvoimakkuuden säätö

mr-henri [17.09.2009 19:03:38]

#

Mitenkähän voisi tehdä äänenvoimakkuuden säätimen vb2008:lla? että esim. scrollbarilla pystyisi säätämään koko tietokoneen äänenvoimakkuutta..?

neau33 [18.09.2009 01:25:25]

#

Moi mr-henri

jos alusta ompi XP niin imppaa täältä MixerLib.zip -> pura tiedosto MixerLib.dll C:\Windows\System32 -hakemistoon -> avaa Windows komentokehoteikkuna -> krjoita: cd \Windows\Sytem32 & paina Enter-näpykkää -> kirjoita: gacutil /i MixerLib.dll | ngen install MixerLib.dll
(asennuksen purku: ngen uninstall MixerLib.dll | gacutil /u MixerLib)

'Väännetty SharpDevelop 3.1 Betalla
Imports System
Imports System.Windows.Forms
Imports MixerLib 'GAC-välilehdeltä referenssi: MixerLib

Public Partial Class MainForm

   Dim mixer As New MixerLib.AudioMixer.Mixer(0)

   Public Sub New()
      InitializeComponent()
   End Sub

   Sub MainFormLoad(sender As Object, e As EventArgs)

      If mixer.Devices.Count = 0 Then
         MsgBox("mixerilaitetta ei ole asennettu")
         Me.Close
      End If

      Me.MaximizeBox = False
      Me.Text = "MASTERVOLUME"
      Me.CheckBox1.Text = "Vaimenna"
      TrackBar1.Orientation = 1
      TrackBar1.Maximum = 1000
      TrackBar1.Minimum = 0
      TrackBar1.LargeChange = 50
      TrackBar1.SmallChange = 5
      CheckBox1.Checked = _
      mixer.Lines.Item(0).Mute
      TrackBar1.Value = _
      mixer.Lines.Item(0).Volume / 65.535

   End Sub

   Sub TrackBar1Scroll(sender As Object, e As EventArgs)
         mixer.Lines.Item(0).Volume _
       = 65.535 * TrackBar1.Value
   End Sub

   Sub CheckBox1CheckedChanged(sender As Object, e As EventArgs)
      mixer.Lines.Item(0).Mute = CheckBox1.Checked
   End Sub

   Sub MainFormFormClosing(sender As Object, e As FormClosingEventArgs)
      Me.Dispose
   End Sub

   Sub MainFormFormClosed(sender As Object, e As FormClosedEventArgs)
      End
   End Sub

End Class

neau33 [18.09.2009 04:40:14]

#

Moi taas mr-henri

jos alusta ompi Vista tai uudempi niin imppaa täältä MixerApi.zip -> pura tiedosto MixerApi.dll C:\Windows\System32 -hakemistoon -> avaa Windows komentokehoteikkuna -> krjoita: cd \Windows\Sytem32 & paina Enter-näpykkää -> kirjoita: gacutil /i MixerApi.dll | ngen install MixerApi.dll
(asennuksen purku: ngen uninstall MixerApi.dll | gacutil /u MixerApi)

'Väännetty SharpDevelop 3.1 Betalla
Imports System
Imports System.Windows.Forms
Imports MixerApi 'Tuo referenssi GAC-välilehdeltä

Public Partial Class MainForm: Inherits Form

   Private device As MMDevice

   Public Sub New()

      Me.InitializeComponent()
      Me.checkBox1.Text = "Vaimenna"
      Me.MaximizeBox = False

      Me.Text = "MASTERVOLUME"
      Me.trackBar1.Orientation = 1
      Me.trackBar1.Maximum  = 100
      Me.trackBar1.Minimum = 0
      Me.trackBar1.LargeChange = 20
      Me.trackBar1.SmallChange = 5
      Me.trackBar1.TickFrequency = 10

      Dim DevEnum As New MMDeviceEnumerator()
      device = DevEnum.GetDefaultAudioEndpoint( _
      EDataFlow.eRender, ERole.eMultimedia)
      trackBar1.Value = CInt((device.AudioEndpointVolume. _
      MasterVolumeLevelScalar * 100))
      Me.checkBox1.Checked = device.AudioEndpointVolume.Mute
      AddHandler device.AudioEndpointVolume.OnVolumeNotification, _
      New AudioEndpointVolumeNotificationDelegate( _
      AddressOf AudioEndpointVolume_OnVolumeNotification)

   End Sub

   Private Sub AudioEndpointVolume_OnVolumeNotification( _
   data As AudioVolumeNotificationData)
      If Me.InvokeRequired Then
         Dim Params As Object() = New Object(0) {}
         Params(0) = data
         Me.Invoke(New AudioEndpointVolumeNotificationDelegate( _
         AddressOf AudioEndpointVolume_OnVolumeNotification), _
         Params)
      Else
         trackBar1.Value = CInt((data.MasterVolume * 100))
      End If
   End Sub

   Private Sub trackBar1Scroll(sender As Object, e As EventArgs)
      device.AudioEndpointVolume.MasterVolumeLevelScalar _
      = (CSng(trackBar1.Value) / 100F)
   End Sub

   Sub CheckBox1CheckedChanged(sender As Object, e As EventArgs)
      device.AudioEndpointVolume.Mute = CheckBox1.Checked
   End Sub

   Sub MainFormFormClosing(sender As Object, e As FormClosingEventArgs)
      Me.Dispose
   End Sub

   Sub MainFormFormClosed(sender As Object, e As FormClosedEventArgs)
      End
   End Sub

End Class

mr-henri [21.09.2009 17:44:45]

#

Jostakin syystä tämä ei toimi minulla. kun säädintä liikuttaa, ei tapahdu mitään, mutta kun säädän master volumea windowsin omalla säätimellä, niin tämän ohjelman säädin liikkuu sen mukana. Vaimennuskaan ei toimi. kokeilin visual basic express editionilla(2008) ja sharp developer 3.1:llä. Vista on käyttiksenä.

neau33 [23.09.2009 02:42:32]

#

Moi taas mr-henri

Pura MixerApi.dll -asennus kuten edellisessä viestissäni on neuvottu ja jos rekisteröit MixerApi.tlb niin poista rekisteröinti ja poista tiedosto/t

Imppaa täältä MixerApi.dll uusi versio, asenna samaan malliin kuten edellinenkin, testaa ja anna palautetta...

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta