AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte TAudioVolume Komponente incl. System Mixer
Thema durchsuchen
Ansicht
Themen-Optionen

TAudioVolume Komponente incl. System Mixer

Ein Thema von EWeiss · begonnen am 6. Mai 2018 · letzter Beitrag vom 24. Jul 2019
Antwort Antwort
Seite 10 von 21   « Erste     8910 111220     Letzte »    
EWeiss
Projekt entfernt..

Geändert von EWeiss (24. Jul 2019 um 04:45 Uhr)
 
TiGü

 
Delphi 10.4 Sydney
 
#91
  Alt 16. Mai 2018, 10:30
Nicht die Sprache, das Framework! Nicht verwechseln!
  Mit Zitat antworten Zitat
EWeiss
 
#92
  Alt 16. Mai 2018, 10:39
Nicht die Sprache, das Framework! Nicht verwechseln!
Korrekt mir ist jetzt nicht der richtige Namen eingefallen
Habe es korrigiert.

gruss

Geändert von EWeiss (16. Mai 2018 um 10:42 Uhr)
  Mit Zitat antworten Zitat
TiGü

 
Delphi 10.4 Sydney
 
#93
  Alt 16. Mai 2018, 10:41
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.
  Mit Zitat antworten Zitat
EWeiss
 
#94
  Alt 16. Mai 2018, 10:44
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
  Mit Zitat antworten Zitat
TiGü

 
Delphi 10.4 Sydney
 
#95
  Alt 16. Mai 2018, 11:04
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?
  Mit Zitat antworten Zitat
EWeiss
 
#96
  Alt 16. Mai 2018, 11:18
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

Geändert von EWeiss (16. Mai 2018 um 11:22 Uhr)
  Mit Zitat antworten Zitat
TiGü

 
Delphi 10.4 Sydney
 
#97
  Alt 16. Mai 2018, 12:53
Boah, meine Fresse! Darauf muss man erstmal kommen.
Man muss nach Anmeldung der Notifizierung definitiv GetSessionEnumerator aufrufen, dann geht das erst.
Siehe Beispielprojekt im Anhang!

Drauf gekommen bin ich deswegen:
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
Angehängte Dateien
Dateityp: zip NotificationTest_2018-05-16_13-48-15.zip (11,8 KB, 11x aufgerufen)
  Mit Zitat antworten Zitat
EWeiss
 
#98
  Alt 16. Mai 2018, 13:02
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

Geändert von EWeiss (16. Mai 2018 um 13:10 Uhr)
  Mit Zitat antworten Zitat
TiGü

 
Delphi 10.4 Sydney
 
#99
  Alt 16. Mai 2018, 13:10
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.
  Mit Zitat antworten Zitat
EWeiss
 
#100
  Alt 16. Mai 2018, 13:10
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

Geändert von EWeiss (16. Mai 2018 um 13:17 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 10 von 21   « Erste     8910 111220     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz