Lautstärke eines VB.Net-Programmes im Mixer verändern

Jeder kennt das Problem von Programmen, die über eine Soundausgabe verfügen aber sich nicht diesbezüglich einstellen lassen. Nun das liegt daran, dass, um im Mixer (Lautstärkemixer) aufgenommen zu werden, es erforderlich ist einen konkreten "Sound" von sich zu geben. Daher wird hier aufgezeigt wie dies am einfachsten geht in VB.Net. Außerdem wird gezeigt wie der Code aussieht, der notwendig ist um generell Musik wiederzugeben.

Ziel

Normalerweise erscheint euer Programm nicht im Mixer oder erst nach dem Abspielen von Musik über das Programm. Allerdings will kein Nutzer erst warten bis das Programm einmal einen Sound abspielt. Dieses Bild zeigt den Endzustand, den wie hier gerne erreichen wollen. 

Modul definieren und aufrufen

Am besten lagern wir die Funktionen für das reine Abspielen aus in ein Modul.

Module Module_PlayMP3

    Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpszCommand As String, ByVal lpszReturnString As String, ByVal cchReturnLength As Integer, ByVal hwndCallback As Integer) As Integer

    Public Function MP3_Play(ByVal sFile As String, ByVal sAlias As String) As Boolean

        If mciSendString("open " & Chr(34) & sFile & Chr(34) & " type MPEGVideo alias " & sAlias, 0, 0, 0) = 0 Then

            If mciSendString("play " & sAlias & " from 0", 0, 0, 0) = 0 Then

                Return (True)

            End If

        End If

    End Function

    Public Sub MP3_Stop(ByVal sAlias As String)

        mciSendString("stop " & sAlias, 0, 0, 0)

        mciSendString("close " & sAlias, 0, 0, 0)

    End Sub

End Module

Nun zeige ich die grundsätzlichen Aufrufe der Library. Es ist wichtig, dass zuerst immer die Ausführung gestoppt wird, ansonsten kann nur einmal eine MP3 abgespielt werden. i steht für einen beliebigen String.

  • MP3_Stop(i)
  • MP3_Play("Pfad zur MP3-Datei", i)

Übrigends könnt ihr normale WAV-Dateien sehr viel einfacher abspielen. Dazu einfach 

  • My.Computer.Audio.Play("Pfad zur WAV-Datei", AudioPlayMode.Background)

Aber dies wird hier nicht weiter erläutert.

Für den Mixer registrieren

Der Trick dabei ist einfach beim Start des Programmes eine stumme Sound-Datei abzuspielen. Dabei ist es egal ob diese WAV oder MP3 ist. Also einfach

  • My.Computer.Audio.Play("init.wav", AudioPlayMode.Background)

und das wars auch schon. Solche eine Datei findest du hier direkt folgend. Du kannst natürlich auch jede andere verwenden, allesdings sollte sie nicht zu lang sein.

Download
Stumme Datei - Beispiel
init.wav
Wave Audio Datei 9.4 KB

Kommentar schreiben

Kommentare: 0