Laustärke einzelner Audiogeräte

  • Hallo,

    habe folgendes Problem:
    Habe an meinem PC per Klinke und per HDMI eine Soundausgabe. Dass der Sound auf beide gleichzeitig ausgegeben wird, habe ich mit Virtual Audio Cable hinbekommen. Jetzt habe ich das Problem, dass wenn ich das virtuelle Gerät als Standard setze (damit der Sound auch aufgeteilt wird) und die Lautstärke ändere, nicht die Lautstärke für den Lautsprecher und HDMI-Anschluss mitgeregelt wird.

    Bis jetzt bin ich soweit, dass ich mit

    [autoit]

    #include <_AudioEndpointVolume.au3>

    [/autoit][autoit][/autoit][autoit]

    While 1
    $vol=_GetMasterVolumeLevelScalar()
    Sleep(1000)
    WEnd

    [/autoit]

    die Gesamtlautstärke abfragen kann. Jetzt habe ich trotz langem Googeln nicht hinbekommen, die Lautstärke für die beiden anderen Ausgänge automatisch mitregeln zu lassen.

    Mein Betriebssystem ist Win 7 64bit. Hoffe, ihr seht da eine Möglichkeit.

    lg

    [Blockierte Grafik: http://oi44.tinypic.com/o74o0n.jpg]

  • Du könntest das Control, in dem Fall die Schieberegler deren Wert du ändern möchtest, über ControlSend ansprechen. Das Problem ist aber das richtige Control erst mal zu finden.
    Denn man muss davon ausgehen das z.B. der Lautstärkeregler(Control) der Klinke nicht immer die selbe Instanznummer hat. [CLASS:msctls_trackbar32; INSTANCE:1] (Instanznummer) (Ausgelesen mit dem Au3Info Tool)
    Auslesen der aktuellen Werte der Lautstärkeregler kannst du mit folgendem Codeschnipsel von Bugfix:
    http://pastebin.com/PXTdVg2A

    Beachten musst du das die Ausgabe des Codeschnipsels genau das Gegenteil ist was der Regler anzeigt. Will heißen, steht der Lautstärkeregler in Windows auf 60 gibt der Codeschnipsel 40 zurück.

    Eine weitere Möglichkeit wäre noch mittels der Winapi die Lautstärkeeinstellung zu manipulieren.
    Ich vermute mal das hier etwas dabei sein könnte: http://msdn.microsoft.com/en-us/library/…v=vs.85%29.aspx
    Befasst habe ich mich damit noch nicht.

    ~IRC: irc.afterworkchat.de #autoit

  • Hiho,

    super danke. Löst aber mein Problem leider noch nicht.

    [autoit]

    #Include <SendMessage.au3>

    [/autoit][autoit][/autoit][autoit]

    run("sndvol -f")

    [/autoit][autoit][/autoit][autoit]

    Const $TBM_GETPOS = 0x400
    $hWnd = ControlGetHandle("[CLASS:#32770]", "", "[CLASS:msctls_trackbar32; INSTANCE:2]")
    $ret = _SendMessageA($hWnd, 0x400)
    ConsoleWrite('--@@Line[' & @ScriptLineNumber -1 & '] Debug_Var >> $ret >>' & 100-$ret & @CRLF) ;### DebugToConsole
    ControlSend("[CLASS:#32770]", "", "[CLASS:msctls_trackbar32; INSTANCE:2]", "22")

    [/autoit]

    Damit kann ich jetzt den Wert auslesen aber weiß nicht, wie ich den Regler damit verschieben soll? ControlSend sendet ja schließlich einen String? Außerdem wird auch immer der Lautstärkeregler dabei geöffnet - auch @SW_HIDE funktioniert hier nicht.

    Leider weiß ich (noch) nicht, wie man mithilfe der Winapi die einzelnen Mixer ansteuern kann? Mit welchem Befehl?
    lg

  • Habe ich auch schon versucht aber nicht hinbekommen

    mit "setsysvolume 0 Lautsprecher" wird trotzdem der Line1 geregelt.
    mit "setsubunitvolumedb Lautsprecher Wave 0" passiert nichts

    vielleicht habe ich auch die befehle nicht richtig gesetzt

    Habe auch schon versucht ein externes Tool zu finden, was per command line bedient werden kann. zur not würde ich mir mit c# eins selbst kompilieren; hätte dafür jmd eine idee?

  • mit "setsysvolume 0 Lautsprecher" wird trotzdem der Line1 geregelt.
    mit "setsubunitvolumedb Lautsprecher Wave 0" passiert nichts


    Aus der Hilfe von NirCmd:

    setdefaultsounddevice "Line In"
    setdefaultsounddevice "Microphone" 2

    setsubunitvolumedb "Speakers" "Line In" -25
    setsubunitvolumedb "Speakers" "Microphone" -10

    Jetzt noch das nircmd davor setzten und nochmal probieren.
    Also z.B.:
    nircmd setsubunitvolumedb "Speakers" "Microphone" -10

    ~IRC: irc.afterworkchat.de #autoit

  • Habe folgendes versucht:

    setsubunitvolumedb "Speakers" "Line In" -25
    setsubunitvolumedb "Lautsprecher" "Line In" -25
    setsubunitvolumedb "Lautsprecher" "Master" -25

    FUnktioniert alles nicht