vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
DTA-Dateien erstellen inkl. BLZ-/Kontonummernpr?fung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2017
 
zurück
Rubrik: Audio & Multimedia09.05.01
auxGetVolume-Funktion

Diese Funktion liefert die Lautstärke-Einstellung für ein auxiales Ausgabegerät.

Betriebssystem:  Win95, Win98, WinNT, Win2000, WinMEViews:  9.594 

Summer-Special bei Tools & Components!
Gute Laune Sommer bei Tools & Components
Top Summer-Special - Sparen Sie teilweise bis zu 120,- EUR
Alle sev-Entwicklerkomponenten und Komplettpakete jetzt bis zu 25% reduziert!
zum Beispiel:
  • Developer CD nur 479,20 EUR statt 599,- EUR
  • sevDTA 3.0 nur 224,30 EUR statt 299,- EUR
  •  
  • vb@rchiv   Vol.6 nur 20,00 EUR statt 24,95 EUR
  • sevCoolbar 3.0 nur 55,20 EUR statt 69,- EUR
  • - Werbung -Und viele weitere Angebote           Aktionspreise nur für kurze Zeit gültig

    Beschreibung:
    Diese Funktion liefert die Lautstärke-Einstellung für ein auxiales Ausgabegerät.

    Achtung:
    Hat das Gerät nur einen Monokanal so ist die Lautstärke nur der "Low order word" der lpdwVolume Variable. Um herauszufinden ob ein Audiogerät 2 Stereo Kanäle, nur einen Monokanal oder die Lautstärke-Einstellung überhaupt nicht besitzt, kann man die auxGetDevCaps-Funktion aufrufen. Der Gültigkeitbereich der Lautstärke eines Audiokanals ist von "0" (ganz leise) über "32767" (mittel) bis "-1" (ganz laut)

    Beispiel:
    Ganz leise = 0
    etwas lauter = 11000
    fast mittellaut = 32000
    mehr als mittellaut = -32000
    noch lauter = -11000
    Ganz laut = -1

    Deklaration:

    Declare Function auxGetVolume Lib "winmm.dll" ( _
      ByVal uDeviceID As Long, _
      lpdwVolume As Long) As Long

    Parameter:
    uDeviceID Geräte-Index. Ist ein Geräte-Index ungültig, wird "MMSYSERR_BADDEVICEID" zurückgegeben. Um die Geräte ID's zu ermitteln kann man die auxGetDevCaps-Funktion aufrufen.
    lpdwVolume (Long). War der Funktionsaufruf erfolgreich, werden hier die Lautstärke-Einstellungen beider Kanäle zurückgegeben.

    Rückgabewert:
    Die Funktion liefert "MMSYSERR_NOERROR" zurück, wenn der Funktionsaufruf erfolgreich war, andernfalls (z.B. ungültige DeviceID) wird "MMSYSERR_BADDEVICEID" zurückgegeben.

    Rückgabekonstanten:

    Const MMSYSERRR_NOERROR = 0 ' Kein Fehler
    Const MMSYSERR_BASE = 0 ' Basis Konstante
    Const MMSYSERR_BADDEVICEID = (MMSYSERR_BASE+ 2) ' Falscher Geräte ID

    Beispiel:

    Private Declare Function auxGetVolume Lib "winmm.dll" ( _
      ByVal uDeviceID As Long, _
      lpdwVolume As Long) As Long 
     
    ' für das zweite Beispiel "CopyMemory"
    Private Declare Sub CopyMemory Lib "kernel32" _
      Alias "RtlMoveMemory" ( _
      Destination As Any, _
      Source As Any, _
      ByVal Length As Long) 
     
    Const MMSYSERRR_NOERROR = 0 ' Kein Fehler
    Const MMSYSERR_BASE = 0 ' Basis Konstante
    Const MMSYSERR_BADDEVICEID = (MMSYSERR_BASE+ 2) ' Falscher Geräte ID
    ' Beispiel 1: Die Berechnung der Lautstärke des ersten Audiogerätes (Index 0)
    Private Sub Command1_Click () 
      Dim Retval As Long, AuxReturn As Long 
      Dim RightVol As Long, LeftVol As Long 
     
      Retval = auxGetVolume(CLng(0), AuxReturn) ' Lautstärke beider Kanäle ermitteln
     
      If Retval = MMSYSERR_BADDEVICEID Then 
        MsgBox "Das Audiogerät mit der DeviceID 0 existiert nicht", vbCritical, "Fehler" 
        Exit Sub 
      End If 
     
      If Retval = MMSYSERR_NOERROR Then 
        LeftVol = Val ("&H" & Hex(AuxReturn And (Not &HFFFF0000))) 
        RightVol = (AuxReturn And &HFFFF0000) / &H10000 
     
        Debug.Print "Gerät : 0" 
        If RightVol <> 0 Then ' Falls das Gerät nur einen Monokanal hat
          Debug.Print "Lautstärke Links: " & LeftVol 
          Debug.Print "Lautstärke Rechts: " & RightVol 
        Else 
          Debug.Print "Lautstärke Links: " & LeftVol 
        End If 
        Debug.Print vbCrLf 
      End If 
    End Sub
    ' Beispiel 2: Die Berechnung der Lautstärke des ersten Audiogerätes (Index 0)
    Private Sub Command2_Click () 
      Dim Retval As Long 
      Dim Volume(1) As Integer, AuxReturn As Long 
      Dim RightVol As Long, LeftVol As Long 
     
      Retval = auxGetVolume(CLng(0), AuxReturn) ' Lautstärke beider Kanäle ermitteln
     
      If Retval = MMSYSERR_BADDEVICEID Then 
        MsgBox "Das Audiogerät mit der DeviceID 0 existiert nicht", vbCritical, "Fehler" 
        Exit Sub 
      End If 
     
      If Retval = MMSYSERR_NOERROR Then 
        CopyMemory Volume(0), AuxReturn, Len(Volume(0)) * 2 
        LeftVol = Volume(0) 
        RightVol = Volume(1) 
     
        Debug.Print "Gerät : 0" 
        If RightVol <> 0 Then ' Falls das Gerät nur einen Monokanal hat 
          Debug.Print "Lautstärke Links: " & LeftVol 
          Debug.Print "Lautstärke Rechts: " & RightVol 
        Else 
          Debug.Print "Laustärke: " & LeftVol 
        End If 
        Debug.Print vbCrLf 
      End If 
    End Sub

    Diese Seite wurde bereits 9.594 mal aufgerufen.

    nach obenzurück
     
       

    Druckansicht Druckansicht Copyright ©2000-2017 vb@rchiv Dieter Otter
    Alle Rechte vorbehalten.
    Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

    Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel