Ergebnis 1 bis 8 von 8

tab lautstärke separat regeln?

  1. #1 Zitieren
    Security Chief  Avatar von honx
    Registriert seit
    Apr 2002
    Ort
    Babylon 5, Sector Red: Zocalo
    Beiträge
    15.282
    kenn jemand von euch ein addon, mit dem ich einzelne tabs leiser stellen kann, ohne ständig den lautstärkemixer des systems öffnen zu müssen, um den browser leiser zu stellen? im browser selbst kann man einen einzelnen tab nämlich nur komplett muten, aber nicht leiser stellen.
    wenn ich nach solchen addons suche, finde ich nur gedöns wie volume control und volume master, was beides spyware sein soll und mit werbung nerven soll, jene beiden dinger werd ich also ganz sicher NICHT installieren. ich suche also ein sauberes und werbefreies addon zum einstellen der tablautstärke.
    BABYLON 5: live and die in starlight
    honx ist offline

  2. #2 Zitieren
    Springshield  Avatar von Homerclon
    Registriert seit
    Aug 2004
    Ort
    Erde
    Beiträge
    19.786
    In der Regel kann man die Lautstärke in den Playern selbst, die im jeweiligen Tab aktiv sind, regulieren.
    Aber mir sind auch ein paar Ausnahmen bekannt, wie bspw. Youtube-Shorts. Was auch immer der Unsinn soll, das kein Lautstärke-Regler vorhanden ist.

    Ein Browser-Add-on wie du suchst, ist mir leider nicht bekannt. Allerdings hab ich nach derartigen bisher auch nicht gesucht.
    Die Frage wäre auch, für welchen Browser? Chromium oder Firefox? Oder gar für etwas exotisches?

    Bei einer kurzen Suche, hab ich übrigens mehrere Browser-Addons mit dem Namen "Volume Control" gefunden, von verschiedenen Autoren.


    PS: Hast du kein Lautstärke-Regler am Lautsprecher / Kopfhörer / Headset? Immer über den Mixer von Windows gehen zu müssen, klingt nervig.

    - Keine verdammte Hechtrolle zum ausweichen in Kämpfe!
    - 01100100 00100111 01101111 01101000 00100001
    Homerclon ist offline

  3. #3 Zitieren
    Moderator Avatar von MadFaTal
    Registriert seit
    May 2010
    Beiträge
    3.886
    Zitat Zitat von Homerclon Beitrag anzeigen
    PS: Hast du kein Lautstärke-Regler am Lautsprecher / Kopfhörer / Headset? Immer über den Mixer von Windows gehen zu müssen, klingt nervig.
    Das wäre auch mein Gedanke. Die Software wird heutzutage aufgrund dem "Agile" einfach zu oft umgekrempelt.
    Ich nutze einen kurzen Griff zum Regler meines analogen Verstärkers für die Boxen, wenn mir die Lautstärke nicht passt.
    Selbst in gleichen Anwendungen oder "Tabs" wie du sie nennst bin ich oft mit der Lautstärke unzufrieden (oft zu leise, oft viel zu laut).

    Es ist einfach krass, dass man heutzutage gezwungen ist zu klassischen und simplen Hardware-Mitteln zurückgreifen, weil die ganze neue Software einfach zu doof ist und sich nicht auf individuelle Bedürfnisse einstellen lässt.
    MadFaTal ist offline

  4. #4 Zitieren
    Security Chief  Avatar von honx
    Registriert seit
    Apr 2002
    Ort
    Babylon 5, Sector Red: Zocalo
    Beiträge
    15.282
    hab nur billigsdorfer kopfhörer ohne volume regler. sowas würde mir auch nichts bringen, denn damit könnte ich ja nur GESAMTE lautstärke regeln, was ich eben NICHT brauche. ich will wie gesagt nur bestimmte tabs im browser oder den browser selbst leiser stellen, während z.b. eine dvd im vlc player mit normaler lautstärke wiedergegeben wird.

    ein praktisches fallbeispiel: ich zocke gerne diamonds 3d und andere gute alte ms-dos perlen auf archive.org im browser, WÄHREND am zweiten monitor beispielsweise eine dvd abgespielt oder in einem anderen browserfenster ein youtube video oder sonstirgendwas wiedergegeben wird. das problem dabei ist: jene emulation auf archive.org ist extrem LAUTER als laut und ich könnte das ding lediglich muten. sonst gar nix.

    und ja, ständig jenen dämlichen scheiss mixer aufrufen zu müssen, ist MEHR ALS LÄSTIG! gerade deswegen suche ich ja nach einer entsprechend alternativen lösung!
    BABYLON 5: live and die in starlight
    honx ist offline

  5. #5 Zitieren
    Springshield  Avatar von Homerclon
    Registriert seit
    Aug 2004
    Ort
    Erde
    Beiträge
    19.786
    Die Frage nach dem Browser ist noch offen. Bringt ja nichts dir ein Addon vorzuschlagen, wenn das dann für den "falschen" Browser ist.

    - Keine verdammte Hechtrolle zum ausweichen in Kämpfe!
    - 01100100 00100111 01101111 01101000 00100001
    Homerclon ist offline

  6. #6 Zitieren
    Security Chief  Avatar von honx
    Registriert seit
    Apr 2002
    Ort
    Babylon 5, Sector Red: Zocalo
    Beiträge
    15.282
    idealerweise bräuchte ich ein addon, welches sowohl für firefox als auch für supermium (chrome) verfügbar ist.
    supermium ist ein chrome fork, welcher weiterhin manifest v2 addons unterstützt, folglich der bessere chrome.
    BABYLON 5: live and die in starlight
    honx ist offline

  7. #7 Zitieren

    Metasyntaktische Variable
    Avatar von foobar
    Registriert seit
    Sep 2004
    Ort
    Direkt hinter dir! Buh!
    Beiträge
    24.785
    Nachdem keine direkten Lösungen kamen: Ich hatte ein ähnliches (aber nicht gleiches) Problem. Jedes Mal, wenn der Firefox die Audiowiedergabe startete, donnerte er mit 100% Lautstärke los, so dass man fast vom Stuhl flog. Es gibt zwar Addons, die eine Lautstärkeregelung versprechen, aber die haben in der Praxis nicht immer funktioniert. Offenbar gibt es mehrere unterschiedliche APIs, über die eine Webseite Krach machen kann. Und die Addons haben nicht auf alle APIs Zugriff oder so. Und pauschal die Lautstärke für FF herunter regeln, funktionierte unter Linux auch nicht, denn der Firefox öffnet für jede Wiedergabe ein neues Audio Sink, für welches dann wieder die 100% gelten.

    Also habe ich ein Skript geschrieben, das im Hintergrund überwacht, wann via PulseAudio ein neues Audio Sink erstellt wird. Und wenn das dem Firefox gehört, dann wird dessen Lautstärke erst einmal auf 50% gesetzt. Theoretisch könnte man das auch anpassen, um je nach Tab bestimmte Lautstärken vorzugeben (vorausgesetzt, die jeweilige Webanwendung setzt den Mediennamen korrekt oder irgend etwas anderes, auf das sich filtern lässt). Das sei dann dem Leser als Übungsaufgabe überlassen. Man hat also keine direkte Kontrolle über die Lautstärke, kann aber zumindest dafür sorgen, dass es einem nicht wie Marty McFly am Anfang von „Zurück in die Zukunft” geht.

    Code:
    #!/bin/bash
    #
    # Make sure we use this locale because parsing relies on English language
    export LC_ALL=C
    
    # Monitor all pulse audio events
    pactl subscribe | while read x event y type num; do
      # If a new stream is detected...
      if [ "$event" == "'new'" -a "$type" == "sink-input" ]; then
        # ...get the name of the program responsible (yes, this is quick and dirty)...
    	app=`pactl list sink-inputs | sed -n '/^Sink Input '"$num"'/, /^Sink-Input/p' | awk -F'=' '/^\s*application.name/ {print $2}'`
    	
    	# ...and if it's Firefox, reduce the volume
    	[[ "$app" =~ "Firefox" ]] && {
    	  pactl set-sink-input-volume "${num#\#}" "50%"
    	}
      fi
    done

    Funktioniert auch auf neueren Derivaten von Ubuntu 24.04 (wie beispielsweise Mint 22), die mit Pipewire arbeiten. Ob Windows-Nutzer sich vielleicht was ähnliches basteln könnten? Keine Ahnung, wen interessiert Windows?
    foobar ist gerade online Geändert von foobar (28.12.2024 um 14:52 Uhr) Grund: s/n//

  8. #8 Zitieren
    Mythos
    Registriert seit
    Jul 2011
    Beiträge
    8.302
    Zitat Zitat von foobar Beitrag anzeigen
    Ob Windows-Nutzer sich vielleicht was ähnliches basteln könnten? Keine Ahnung, wen interessiert Windows?
    Der Windows-Mixer merkt sich die Lautstärke der jeweiligen Anwendung zu einer Kombination aus Ausgabegerät und Anwendungspfad in der Registry (wohl für immer, sind viele verwaiste Einträge bei mir drin). Wem das nicht reicht, der kann eines der Tools von NirSoft nehmen (1x mit Kommandozeile und 1x mit GUI).

    Dein Skript kann man wohl unter Windows nicht so leicht nachbauen, weil ein Äquivalent zu pactl fehlen dürfte.

    In einem Anfall an Wahnsinn habe ich mich nebenher damit befasst, wobei aber mehr gehen musste, wenn man schon mal erhebliche initiale Aufwände treibt:

    Man muss sich wohl mit COM-Schnittstellen von WASAPI herumschlagen und für die Events auch welche implementieren. Ich habe keinen einfacheren Weg gefunden, es ist schon ein stattliches C++-Projekt geworden, aber nichts, das ich guten Gewissens veröffentlichen könnte. Etwas Beispielcode von Microsoft steckt mit drin, aber mit dem alleine bin ich nicht weit gekommen, weil der sich darauf beschränkt, geradeaus auf Events zu reagieren, um Visualisierungen vorzunehmen. Aus den Handlern heraus Lautstärkeänderungen anzuweisen, vergewaltigt das Konzept sozusagen. Eigentlich ist das der falsche Thread (mit seinem folglich ebenfalls falschen Stackframe). Aber es geht... Ist es möglich, dass WASAPI die Audiositzung unterdessen schließt, sodass dem Objekt der Boden unter den Füßen weggezogen wird? Könnte vielleicht sein...

    Weil bei WASAPI nur solche Geradeauskonzepte vorgesehen sind, bei denen der Player die Events auslöst und die dann zum Beispiel etwas visualisieren lassen (z.B. indem Nachrichten an Fenster geschickt werden), fehlt auf der Seite des Event-Handlings der zum Verarbeiten nötige Kontext, sodass es einige Zusatzaufwände zu meistern gab, vor allem bezüglich des Übertragens und Bewahrens von Kontext und des Handhabens der Objektlebensdauer. Wozu kann man seine eigenen Konstruktoren basteln, um etwas State aus diversen Zeigern mitzugeben... Dazu nutze ich die auf die Referenzzählung von COM-Ojekten spezialisierten Smartpointer aus der Advanced Template Library (ATL), aber das alleine genügt nicht, es ist wegen der nötigen "Vergewaltigung" des Systems etwas Trickserei nötig. Es bedarf auch einer umfassenden Fehlerbehandlung, wovon ich bereits viel erschlagen habe, aber nicht alles.

    Es bedürfte noch einer umfassenderen Unterstützung von abwechselnd deaktivierten und aktivierten Ausgabegeräten (das Standardausgabegerät zu referenzieren, wäre zu einfach ) sowie unvorhergesehenen Situationen innerhalb von WASAPI, denn Event-Handling ist ja asynchron, und es gibt keine Garantie, dass die interne Verwaltung von WASAPI die Objekte am Leben lässt, von denen der Code vermutet, dass sie noch leben. Denn beim vonseiten Microsoft vorgesehenen Geradeauskonzept innerhalb eines Audio-Clients und nichts weiter sind innerhalb der Event-Handler die Objekte aus der Verwaltung nicht zugreifbar. Ich musste sie aber innerhalb meiner Implementierungen der Event-Klassen zugreifbar machen, eben über den Konstruktor, sozusagen ein fieser Enterhaken, aber praktisch, weil es garantiert die richtigen Zeiger sind...

    Von der Architektur her besser wäre vermutlich eine Schleife gewesen, die von einem Timer angehalten wird und mit jedem neuen Event einen weiteren Durchlauf vollzieht. Dazu wäre eine Warteschleife zu implementieren, die Nachrichten aus den Event-Handlern sammelt, und immer wenn mindestens eine drin ist, würde der Timer freigegeben werden. Dann verbliebe die Verwaltung der Zeiger auf ihrer natürlichen Ebene, nämlich wo sie von den COM-Schnittstellen angefragt wurden. Das würde aber erfordern, den Informationsverlust zu handhaben, also die ganzen Sitzungsidentifizierer mitsamt Kontext abzuspeichern (z.B. in einer Hash-Map) und die zu den Nachrichten hervorzuholen und dann den Kontext daraufhin abzuklopfen, ob die Zeiger aus WASAPI noch gültig sind (werden nicht gelöscht, solange man wenigstens einen besitzenden Smartpointer darauf hat, der den Referenzzähler um 1 hochgezählt hat, aber doof, falls der Boden unter den Füßen weggezogen wurde, passiert nicht so leicht, ist aber nicht gänzlich unmöglich, dann hätte man den sozusagen zombifiziert (es sei denn, der Zähler wurde radikal auf 0 zurückgesetzt, anstatt ihn jeweils um 1 herunterzuzählen)...).

    Wegen des weiteren Timers kämen die Reaktionen aber noch einen Tick später, als sie jetzt kommen, und falls viel in der Warteschlange drin ist, eventuell so spät, dass es erst mal losbrüllt. Aber das ist eher theoretisch, denn man hat ja nur selten so viele Audiositzungen gleichzeitig am Laufen.

    Diese Architektur hätte den unschlagbaren Vorteil, dass ein Wiederherstellen nach Fehlern, zum Beispiel nachdem Ausgabegeräte deaktiviert oder gewechselt wurden, ohne dass der Client dieses Unter-den-Füßen-Wegziehen unterstützt (Firefox unterstützt es bis zu einem gewissen Grad, diverse andere Player nicht), sauber möglich wäre. Man könnte regelmäßig die vorhandenen Ausgabegeräte und Sitzungen neu enumerieren lassen, um sie mit einer Liste oder Hash-Map abzugleichen, was aus den Event-Handlern heraus nicht gut wäre.

    Aus den Event-Handlern heraus kann man schlecht Neuinitialisierungen vornehmen, denn das Objekt stirbt währenddessen, und es lebt ja auf dem Stack eines anderen Threads. Was weiß ich, was WASAPI damit intern anstellt. Also muss, wenn man es sauber implementieren will, eh eine Schleife warten, ob sie reintialisieren soll, womit man bereits einen Teil des Weges gegangen wäre.

    Aber das war mir für eine erste (doch recht komplex gewordene) Spielerei zu aufwendig, weswegen es einfach zwei Phasen gibt, wie in einfachen Audio-Clients üblich, und zwar eine zum Initialisieren und abarbeiten, was bereits läuft und dann nur noch der andere Fluss, der auf der Basis von Events erfolgt. Der Fluss des Hauptprogramms wartet einfach in einer Tastaturabfrage zum Beenden. Zum Ergründen, was geht, genügt das erst mal.

    Wo ich COM-Klassen selbst implementieren musste, ist auch die beim COM obligatorische Referenzzählung drin, mitsamt einer Debug-Ausgabe, damit man weiß, woran man ist.

    Es werden beliebig viele Ausgabegeräte unterstützt und auch das Eröffnen neuer Audiositzungen zur Laufzeit, hier anhand des vorab gestarteten Firefox-Bowsers, des vorab laufenden System-Sounds und des später gestarteten VLC-Players gezeigt (der seinen Fenstertitel leider zu spät aktualisiert hat, mit 200 ms Verzögerung der Abfrage wäre er erfasst. WASAPI bekommt den nicht mit, kennt nur Display Name (zur Anzeige im Mixer), ist aber nur gesetzt, falls der Player ihn WASAPI mitteilt, beim VLC bloß der Name des Players, nicht des MP3s, dagegen beim SMPlayer sogar der aus dem MP3 ausgelesene Titel; Icon path kann witzig sein, hatte neulich beim VLC eine Weihnachtsmannmütze auf dem Symbol im Windows-Mixer), Laustärkeslider im Mixer wird hier, nur bei Firefox, falls höher, auf 10 % heruntergestellt, auch immer wieder neu zur Laufzeit:

    Code:
    ##############################################################################
            # Enumerating audio endpoints aka devices...
            # Present devices count: 1
            # Iterating present devices...
            #
            ############ Next device #####################################################
            # Device 1/1, Infos:
            Lautsprecher (Realtek High Definition Audio)
            Mute: 0
            Volume range 0 % to 100 % (-65.25 dB to 0 dB in steps of 0.03125 dB)
            Master: 43.0713 % (-12.5312 dB)
            Device 1/1 -> Present Sessions count: 2
            ------------------------------------------------------------------------------
            # Existing session 1/2 of device 1/1, Infos:
            ### Session 1:
            pAudioSessionControl
            Session state: active
            Icon path: C:\Program Files\Mozilla Firefox\firefox.exe
            Display name: Mozilla Firefox
            Grouping parameter: {d34e389e-b30b-4c92-b47f-38add3d2f4e1}
            Number of channels: 2
            pSimpleAudioVolume
            Master volume: 0.417915 (-7.57825 dB)
            Muted: No
            pAudioSessionControl2
            Process ID: 6644 (single-process)
            Session identifier: {0.0.0.00000000}.{2e32f79f-4825-4ece-adc1-5ba949f0b743}|\Device\HarddiskVolume3\Program Files\Mozilla Firefox\firefox.exe%b{00000000-0000-0000-0000-000000000000}
            Session instance identifier: {0.0.0.00000000}.{2e32f79f-4825-4ece-adc1-5ba949f0b743}|\Device\HarddiskVolume3\Program Files\Mozilla Firefox\firefox.exe%b{00000000-0000-0000-0000-000000000000}|1%b6644
            System sounds session: no
            ProcessHandle
            HANDLE: 0x00000000000002DC
            Filepath: C:\Program Files\Mozilla Firefox\firefox.exe
            Filename: firefox.exe
            Filename matching criteria met: Yes
            LogWindowTitles
            HWND: 0x0000000000090408
            Title: rz123-die-erforschung-des-jupitersystems.mp3 ? Mozilla Firefox
            # AudSessEvents::AudSessEvents for Id:1: Ref:1, match:1, object constructed!
            # ...and reduced the audio volume to 0.100000
            # AudSessEvents::AddRef for Id:1: Ref:2, match:1
            # AudSessEvents::AddRef for Id:1: Ref:3, match:1
            # AudSessEvents::AddRef for Id:1: Ref:4, match:1
            # AudSessEvents::Release for Id:1: Ref:3, match:1
            # AudSessEvents::Release for Id:1: Ref:2, match:1
            ------------------------------------------------------------------------------
            # Existing session 2/2 of device 1/1, Infos:
            ### Session 2:
            pAudioSessionControl
            Session state: inactive
            Icon path: @%SystemRoot%\System32\AudioSrv.Dll,-203
            Display name: @%SystemRoot%\System32\AudioSrv.Dll,-202
            Grouping parameter: {6c5d8b3d-9924-4b8c-8da7-0bfc5be18530}
            Number of channels: 2
            pSimpleAudioVolume
            Master volume: 0.232558 (-12.6694 dB)
            Muted: No
            pAudioSessionControl2
            Process ID: 0 (multi-process)
            Session identifier: {0.0.0.00000000}.{2e32f79f-4825-4ece-adc1-5ba949f0b743}|#%b{A9EF3FD9-4240-455E-A4D5-F2B3301887B2}
            Session instance identifier: {0.0.0.00000000}.{2e32f79f-4825-4ece-adc1-5ba949f0b743}|#%b{A9EF3FD9-4240-455E-A4D5-F2B3301887B2}|1%b#
            System sounds session: yes
            ProcessHandle
            # => OpenProcess failed: error = 87
            # AudSessEvents::AudSessEvents for Id:2: Ref:1, match:0, object constructed!
            # AudSessEvents::AddRef for Id:2: Ref:2, match:0
            # AudSessEvents::AddRef for Id:2: Ref:3, match:0
            # AudSessEvents::AddRef for Id:2: Ref:4, match:0
            # AudSessEvents::Release for Id:2: Ref:3, match:0
            # AudSessEvents::Release for Id:2: Ref:2, match:0
            Press return to exit...
            ------------------------------------------------------------------------------
            # New session, Infos:
            ### Session 3:
            pAudioSessionControl
            Session state: inactive
            Icon path:
            Display name:
            Grouping parameter: {450d0bf9-e300-4e58-bc85-969135342468}
            Number of channels: 2
            pSimpleAudioVolume
            Master volume: 0.205379 (-13.7489 dB)
            Muted: No
            pAudioSessionControl2
            Process ID: 8572 (single-process)
            Session identifier: {0.0.0.00000000}.{2e32f79f-4825-4ece-adc1-5ba949f0b743}|\Device\HarddiskVolume3\Program Files\VideoLAN\VLC\vlc.exe%b{4533F59D-59EE-00C6-ADB2-C68B501A6655}
            Session instance identifier: {0.0.0.00000000}.{2e32f79f-4825-4ece-adc1-5ba949f0b743}|\Device\HarddiskVolume3\Program Files\VideoLAN\VLC\vlc.exe%b{4533F59D-59EE-00C6-ADB2-C68B501A6655}|1%b8572
            System sounds session: no
            ProcessHandle
            HANDLE: 0x0000000000000250
            Filepath: C:\Program Files\VideoLAN\VLC\vlc.exe
            Filename: vlc.exe
            Filename matching criteria met: No
            LogWindowTitles
            # AudSessEvents::AudSessEvents for Id:3: Ref:1, match:0, object constructed!
            # AudSessEvents::AddRef for Id:3: Ref:2, match:0
            # AudSessEvents::AddRef for Id:3: Ref:3, match:0
            # AudSessEvents::AddRef for Id:3: Ref:4, match:0
            # AudSessEvents::Release for Id:3: Ref:3, match:0
            # AudSessEvents::Release for Id:3: Ref:2, match:0
            # AudSessEvents::AddRef for Id:3: Ref:3, match:0
            # AudSessEvents::AddRef for Id:3: Ref:4, match:0
            # AudSessEvents::OnDisplayNameChanged for Id:3: Ref:4, match:0, DisplayName: VLC media player (LibVLC 3.0.20)
            # AudSessEvents::Release for Id:3: Ref:3, match:0
            # AudSessEvents::Release for Id:3: Ref:2, match:0
            # AudSessEvents::AddRef for Id:3: Ref:3, match:0
            # AudSessEvents::AddRef for Id:3: Ref:4, match:0
            # AudSessEvents::OnStateChanged for Id:3: Ref:4, match:0, SessionState: active
            # AudSessEvents::Release for Id:3: Ref:3, match:0
            # AudSessEvents::Release for Id:3: Ref:2, match:0
            # AudSessEvents::AddRef for Id:3: Ref:3, match:0
            # AudSessEvents::AddRef for Id:3: Ref:4, match:0
            # AudSessEvents::OnSimpleVolumeChanged: Id:3: Ref:4, match0, Muted: 1
            # AudSessEvents::Release for Id:3: Ref:3, match:0
            # AudSessEvents::Release for Id:3: Ref:2, match:0
            # AudSessEvents::AddRef for Id:3: Ref:3, match:0
            # AudSessEvents::AddRef for Id:3: Ref:4, match:0
            # AudSessEvents::OnSimpleVolumeChanged: Id:3: Ref:4, match:0, Volume: 0.205379
            # AudSessEvents::Release for Id:3: Ref:3, match:0
            # AudSessEvents::Release for Id:3: Ref:2, match:0
            # AudSessEvents::AddRef for Id:1: Ref:3, match:1
            # AudSessEvents::AddRef for Id:1: Ref:4, match:1
            # AudSessEvents::OnSimpleVolumeChanged: Id:1: Ref:4, match:1, Volume: 0.116087 => 0.100000
            # AudSessEvents::Release for Id:1: Ref:3, match:1
            # AudSessEvents::Release for Id:1: Ref:2, match:1
            # AudSessEvents::AddRef for Id:1: Ref:3, match:1
            # AudSessEvents::AddRef for Id:1: Ref:4, match:1
            # AudSessEvents::OnSimpleVolumeChanged: Id:1: Ref:4, match:1, Volume: 0.100000 => fits!
            # AudSessEvents::Release for Id:1: Ref:3, match:1
            # AudSessEvents::Release for Id:1: Ref:2, match:1
            # AudSessEvents::AddRef for Id:1: Ref:3, match:1
            # AudSessEvents::AddRef for Id:1: Ref:4, match:1
            # AudSessEvents::OnSimpleVolumeChanged: Id:1: Ref:4, match:1, Volume: 0.139305 => 0.100000
            # AudSessEvents::Release for Id:1: Ref:3, match:1
            # AudSessEvents::Release for Id:1: Ref:2, match:1
            # AudSessEvents::AddRef for Id:1: Ref:3, match:1
            # AudSessEvents::AddRef for Id:1: Ref:4, match:1
            # AudSessEvents::OnSimpleVolumeChanged: Id:1: Ref:4, match:1, Volume: 0.100000 => fits!
            # AudSessEvents::Release for Id:1: Ref:3, match:1
            # AudSessEvents::Release for Id:1: Ref:2, match:1
            # AudSessEvents::AddRef for Id:1: Ref:3, match:1
            # AudSessEvents::AddRef for Id:1: Ref:4, match:1
            # AudSessEvents::OnSimpleVolumeChanged: Id:1: Ref:4, match:1, Volume: 0.162522 => 0.100000
            # AudSessEvents::Release for Id:1: Ref:3, match:1
            # AudSessEvents::Release for Id:1: Ref:2, match:1
            # AudSessEvents::AddRef for Id:1: Ref:3, match:1
            # AudSessEvents::AddRef for Id:1: Ref:4, match:1
            # AudSessEvents::OnSimpleVolumeChanged: Id:1: Ref:4, match:1, Volume: 0.100000 => fits!
            # AudSessEvents::Release for Id:1: Ref:3, match:1
            # AudSessEvents::Release for Id:1: Ref:2, match:1
            # AudSessEvents::AddRef for Id:1: Ref:3, match:1
            # AudSessEvents::AddRef for Id:1: Ref:4, match:1
            # AudSessEvents::OnSimpleVolumeChanged: Id:1: Ref:4, match:1, Volume: 0.092870 => fits!
            # AudSessEvents::Release for Id:1: Ref:3, match:1
            # AudSessEvents::Release for Id:1: Ref:2, match:1
            # AudSessEvents::AddRef for Id:1: Ref:3, match:1
            # AudSessEvents::AddRef for Id:1: Ref:4, match:1
            # AudSessEvents::OnSimpleVolumeChanged: Id:1: Ref:4, match:1, Volume: 0.092870 => fits!
            # AudSessEvents::Release for Id:1: Ref:3, match:1
            # AudSessEvents::Release for Id:1: Ref:2, match:1
            # AudSessEvents::AddRef for Id:3: Ref:3, match:0
            # AudSessEvents::AddRef for Id:3: Ref:4, match:0
            # AudSessEvents::OnStateChanged for Id:3: Ref:4, match:0, SessionState: inactive
            # AudSessEvents::Release for Id:3: Ref:3, match:0
            # AudSessEvents::Release for Id:3: Ref:2, match:0
            # AudSessEvents::AddRef for Id:3: Ref:3, match:0
            # AudSessEvents::AddRef for Id:3: Ref:4, match:0
            # AudSessEvents::OnStateChanged for Id:3: Ref:4, match:0, SessionState: expired
            # AudSessEvents::AddRef for Id:3: Ref:5, match:0
            # AudSessEvents::Release for Id:3: Ref:4, match:0
            # AudSessEvents::Release for Id:3: Ref:3, match:0
            # AudSessEvents::Release for Id:3: Ref:2, match:0
            # AudSessEvents::Release for Id:3: Ref:1, match:0
            # AudSessEvents::Release for Id:3: Ref:0, match:0, object deleted!
            # AudSessEvents::AddRef for Id:1: Ref:3, match:1
            # AudSessEvents::AddRef for Id:1: Ref:4, match:1
            # AudSessEvents::OnStateChanged for Id:1: Ref:4, match:1, SessionState: inactive
            # AudSessEvents::Release for Id:1: Ref:3, match:1
            # AudSessEvents::Release for Id:1: Ref:2, match:1
            # AudSessEvents::AddRef for Id:1: Ref:3, match:1
            # AudSessEvents::AddRef for Id:1: Ref:4, match:1
            # AudSessEvents::OnStateChanged for Id:1: Ref:4, match:1, SessionState: expired
            # AudSessEvents::AddRef for Id:1: Ref:5, match:1
            # AudSessEvents::Release for Id:1: Ref:4, match:1
            # AudSessEvents::Release for Id:1: Ref:3, match:1
            # AudSessEvents::Release for Id:1: Ref:2, match:1
            # AudSessEvents::Release for Id:1: Ref:1, match:1
            # AudSessEvents::Release for Id:1: Ref:0, match:1, object deleted!
    Ich geb's zu, es ist bekloppt, wenn man es gar nicht braucht.

    Nun weiß ich aber, wie man es machen müsste, um es richtig zu machen...
    jabu ist offline Geändert von jabu (05.04.2025 um 13:53 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •