Delphi-PRAXiS
Seite 10 von 21   « Erste     8910 111220     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   TAudioVolume Komponente incl. System Mixer (https://www.delphipraxis.net/196270-taudiovolume-komponente-incl-system-mixer.html)

TiGü 16. Mai 2018 11:30

AW: TAudioVolume Komponente incl. System Mixer
 
Nicht die Sprache, das Framework! Nicht verwechseln!

EWeiss 16. Mai 2018 11:39

AW: TAudioVolume Komponente incl. System Mixer
 
Zitat:

Zitat von TiGü (Beitrag 1402256)
Nicht die Sprache, das Framework! Nicht verwechseln!

Korrekt mir ist jetzt nicht der richtige Namen eingefallen ;)
Habe es korrigiert.

gruss

TiGü 16. Mai 2018 11:41

AW: TAudioVolume Komponente incl. System Mixer
 
Zitat:

Zitat von TiGü (Beitrag 1402256)
Nicht die Sprache, das Framework! Nicht verwechseln!

Und um genau zu sein in den ersten Zeilen von TApplication.Create.
Da wird OleInitialize aufgerufen, was laut MSDN (https://msdn.microsoft.com/de-de/lib...(v=vs.85).aspx) CoinitializeEx aufruft.

Das ist auch so richtig und wichtig, weil sonst ClipBoard und Drag'n'Drop nicht funktionieren würden.

EWeiss 16. Mai 2018 11:44

AW: TAudioVolume Komponente incl. System Mixer
 
Zitat:

Zitat von TiGü (Beitrag 1402258)
Zitat:

Zitat von TiGü (Beitrag 1402256)
Nicht die Sprache, das Framework! Nicht verwechseln!

Und um genau zu sein in den ersten Zeilen von TApplication.Create.
Da wird OleInitialize aufgerufen, was laut MSDN (https://msdn.microsoft.com/de-de/lib...(v=vs.85).aspx) CoinitializeEx aufruft.

Das ist auch so richtig und wichtig, weil sonst ClipBoard und Drag'n'Drop nicht funktionieren würden.

OK dann habe ich nichts gesagt.
Das Problem ist nur das ich dann CoUninitialize aufrufen muss damit mein CoInitializeEx überhaupt funktioniert.

Seltsam.. aber OK.

gruss

TiGü 16. Mai 2018 12:04

AW: TAudioVolume Komponente incl. System Mixer
 
Zitat:

Zitat von EWeiss (Beitrag 1402250)
Zitat:

Zitat von TiGü (Beitrag 1402248)

Sorry ich verstehe nicht auf was du hinaus willst.

Ich verstehe das so, dass der Soundtreiber entscheiden kann, ob er diese Funktionalität unterstützt.
Wenn das nicht implementiert ist, dann wird das von der Anwendung implementierte OnSessionCreated nicht aufgerufen.
Zwar wird bei der Anmeldung per RegisterSessionNotification ein S_OK zurückgeliefert, aber der Zeiger auf die Methode nirgends abgespeichert und verwendet.

Werden denn die Methoden von IAudioSessionEvents aufgerufen?

EWeiss 16. Mai 2018 12:18

AW: TAudioVolume Komponente incl. System Mixer
 
Zitat:

Werden denn die Methoden von IAudioSessionEvents aufgerufen?
Ja diese..
SessionStateEvent
SessionVolumeEvent

niemals..
OnAudioSessionDisconnected
OnAudioSessionCreated

OnAudioSessionCreated mit Thread aber Fehler mit PostMessage die neue Version damit noch nicht getestet.

gruss

TiGü 16. Mai 2018 13:53

AW: TAudioVolume Komponente incl. System Mixer
 
Liste der Anhänge anzeigen (Anzahl: 1)
Boah, meine Fresse! Darauf muss man erstmal kommen. :shock: :spin2: :corky: :spin: :roteyes:
Man muss nach Anmeldung der Notifizierung definitiv GetSessionEnumerator aufrufen, dann geht das erst.
Siehe Beispielprojekt im Anhang!

Drauf gekommen bin ich deswegen:
Zitat:

Zitat von Larry Osterman
The first is that his application hasn't retrieved the current list of sessions. This is one of the really subtle things about the session enumeration APIs. In order to prevent a race condition that can occur when a session notification arrives while the application using the session APIs is starting up, the session enumeration API discards new session notifications until the application has first retrieved the list of existing sessions.

The expected usage pattern is:

Application activates a session manager2. Application registers for session notifications. Application retrieves the current list of sessions for the endpoint and stores the session control objects into a list (don't forget to addref the session).

When a new session is created, the application takes a reference to the newly created session control object and inserts it into the list if it's not already present. Note that the session control object passed into the notification will be destroyed when the session notification returns - if you call GetSessionEnumerator at this point it will probably NOT hold the newly created session (it might, it all depends on timing).

https://stackoverflow.com/a/740241

EWeiss 16. Mai 2018 14:02

AW: TAudioVolume Komponente incl. System Mixer
 
Danke für deine Mühe das Problem zu beseitigen. :)
Ich werde es mir anschauen und direkt implementieren wenn es bei mir zum Erfolg führt. (Win10 <> Win7)

Bin gerade mit den Peaks dran habe da noch kleine Probleme wie immer ..
Es verhält sich anders ohne Komponente.

EDIT:
Scheint zu funktionieren..
Warum aber die gleiche EXE 6x mal überprüft wird bis zur fertigen Initialisierung verstehe ich nicht.

Zitat:

\Device\HarddiskVolume1\Program Files (x86)\Microsoft Visual Studio\VB98\Sourcemein\SKAero Projekte\Sound Machine\_build\Soundmachine.exe%b{00000000-0000-0000-0000-000000000000}
42 - 14:05:44:640 - {0.0.1.00000000}.{08c3e840-ce12-439b-bcaf-faead90881e8}|\Device\HarddiskVolume1\Program Files (x86)\Microsoft Visual Studio\VB98\Sourcemein\SKAero Projekte\Sound Machine\_build\Soundmachine.exe%b{00000000-0000-0000-0000-000000000000}
46 - 14:05:44:643 - {0.0.1.00000000}.{0a41dc96-5b3f-41b9-9baf-6930ef37f85b}|\Device\HarddiskVolume1\Program Files (x86)\Microsoft Visual Studio\VB98\Sourcemein\SKAero Projekte\Sound Machine\_build\Soundmachine.exe%b{00000000-0000-0000-0000-000000000000}
50 - 14:05:44:647 - {0.0.1.00000000}.{71d9af33-c9cd-4f8c-933a-d91c099252da}|\Device\HarddiskVolume1\Program Files (x86)\Microsoft Visual Studio\VB98\Sourcemein\SKAero Projekte\Sound Machine\_build\Soundmachine.exe%b{00000000-0000-0000-0000-000000000000}
54 - 14:05:44:652 - {0.0.1.00000000}.{a7365fee-d1ad-41d1-b9ad-78d48c1b797e}|\Device\HarddiskVolume1\Program Files (x86)\Microsoft Visual Studio\VB98\Sourcemein\SKAero Projekte\Sound Machine\_build\Soundmachine.exe%b{00000000-0000-0000-0000-000000000000}
58 - 14:05:44:657 - {0.0.0.00000000}.{74088c25-4c92-4184-b938-5651c2eeb6fd}|\Device\HarddiskVolume1\Program Files (x86)\Microsoft Visual Studio\VB98\Sourcemein\SKAero Projekte\Sound Machine\_build\Soundmachine.exe%b{00000000-0000-0000-0000-000000000000}
Disconnect geht nicht oder aber nicht implementiert zur zeit.

gruss

TiGü 16. Mai 2018 14:10

AW: TAudioVolume Komponente incl. System Mixer
 
Hängt vielleicht mit der Anzahl der Devices zusammen. Ich habe in dem Beispielprogramm über alle Devices iteriert und da über den jeweiligen SessionManager2 die Callback angemeldet. Wenn du dir nur das DefaultDevice geben lässt, sollte das schon weniger sein.

EWeiss 16. Mai 2018 14:10

AW: TAudioVolume Komponente incl. System Mixer
 
Zitat:

Zitat von TiGü (Beitrag 1402276)
Hängt vielleicht mit der Anzahl der Devices zusammen. Ich habe in dem Beispielprogramm über alle Devices iteriert und da über den jeweiligen SessionManager2 die Callback angemeldet. Wenn du dir nur das DefaultDevice geben lässt, sollte das schon weniger sein.

Ja das wäre eine logische Erklärung.

PS:
Nebenbei.. Ich war selber schon auf der gleichen Seite habe aber wegen meiner schlechten English Kenntnisse das nicht richtig verstanden.
Aber Larry.. sollte es wissen ;) er hat das Teil ja mit entwickelt. :)

Zufall? 100 voll. LOL

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:37 Uhr.
Seite 10 von 21   « Erste     8910 111220     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz