AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte TAudioVolume Komponente incl. System Mixer

TAudioVolume Komponente incl. System Mixer

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

Geändert von EWeiss (24. Jul 2019 um 05:45 Uhr)
 
grizzly

 
Delphi XE4 Professional
 
#201
  Alt 25. Nov 2018, 23:09
Hallo!

Ich habe es noch ein paar mal probiert, und es crasht zuverlässig wenn ich den Kopfhörer ausschalte. Sollte also leichter zu finden sein als irgendwelche zufällig auftretenden Bugs. Wenn Du willst kann ich eine Test-Version mit irgendwelchen Debug-Infos, Logs, oder was weiß ich, laufen lassen, da sollte ich diese Woche dazukommen. Zum hier kompilieren und debuggen kann ich nur mit einer X4 und der letzten Community-Version dienen. Ohne irgendwelche Komponenten.
Kleinigkeit am Rande: Beim Einschalten des Kopfhörers kommt eine Information, auch wenn man "Show Information" ausgeschaltet hat (siehe Screenshot)

Ist mir schon klar, dass das ein Freizeitprojekt ist und Du da nicht beliebig viel Zeit reinstecken kannst/willst/darfst! Ich biete ja nur an, bei diesem speziellen Fall mit testen zu helfen, falls Dich der Fehler reizt . Ansonsten glaube ich auch nicht, dass das eine Situation ist, die im Normalbetrieb oft auftritt.

Gruß
Michael
Miniaturansicht angehängter Grafiken
zwischenablage04.jpg  
  Mit Zitat antworten Zitat
EWeiss
 
#202
  Alt 26. Nov 2018, 00:18
Zitat:
Ich habe es noch ein paar mal probiert, und es crasht zuverlässig wenn ich den Kopfhörer ausschalte.
Ich behaupte jetzt einfach mal das in dem fall dann kein Default Device mehr existiert und AudioEndpointVolume dann auf einem ungültigen Device zugreift.
Aber ohne entsprechende Hardware ist das für mich schwer nachzuverfolgen.

Zitat:
Wenn Du willst kann ich eine Test-Version mit irgendwelchen Debug-Infos, Logs, oder was weiß ich, laufen lassen, da sollte ich diese Woche dazukommen.
Ich habe keine Logs eingebaut.

Zitat:
Zum hier kompilieren und debuggen kann ich nur mit einer X4 und der letzten Community-Version dienen.
Macht nur sinn wenn diese auch 64Bit unterstützt.
Andernfalls müsste ich dir dann den Quelltext der 32BIT zur Verfügung stellen.

Zitat:
Ist mir schon klar, dass das ein Freizeitprojekt ist und Du da nicht beliebig viel Zeit reinstecken kannst/willst/darfst!
Zeit ohne ende, wollen tue ich solange bis es zu 98% zuverlässig läuft, nun ist mein Projekt denke schon das ich das darf

Zitat:
Ich biete ja nur an, bei diesem speziellen Fall mit testen zu helfen, falls Dich der Fehler reizt .
Das ist auch nett von dir.. werde den Quelltext auf meinem Server hochladen und dir die Version schicken die du debuggen kannst.
Wenn du mir denn sagst welche es von beiden ist.

Zitat:
Ansonsten glaube ich auch nicht, dass das eine Situation ist, die im Normalbetrieb oft auftritt.
Davon gehe ich auch mal aus, trotzdem sollte es funktionieren.
Zitat:
Beim Einschalten des Kopfhörers kommt eine Information, auch wenn man "Show Information" ausgeschaltet hat (siehe Screenshot)
Ja bedenke bitte das dass entfernen und addieren neuer Device eine neu Implementation ist und noch nicht voll ausgereift wie du sehen kannst.
Deshalb zeige ich mir hier eine Message Box an wenn das Default Device geändert wurde.

Später wird hier dann der Scrolltext (Information) damit gefüttert.

PS:
Ist das bei dir normal mit den 3 Firefox Prozessen im Mixer? Erstellt dieser für jedes Fenster einen eigenen Prozess?
Wenn dem so ist wäre es vielleicht besser die Fenster Titel anstelle des Anwendungsnamen anzuzeigen..
Anstelle von "Internet Explorer" wird der Titel des Tabs angezeigt das aktiv ist wenn der Mixer startet.
Siehe Shot! Kommt dann in der nächsten Version.

Du hast eine PN!
Fange beim Debuggen in dieser procedure uMain an.
procedure TMainClass.MasterDeviceStateChange(DeviceId: string; NewDeviceState: Cardinal);

gruss

Geändert von EWeiss (11. Jul 2019 um 16:54 Uhr)
  Mit Zitat antworten Zitat
EWeiss
 
#203
  Alt 29. Nov 2018, 07:54
Zitat:
Leider hat er sich dann verabschiedet
Auch wenn hier keine Antwort kommt.

Das Problem mit dem Absturz liegt daran das der System Mixer beim hinzufügen, entfernen oder ändern eines Device
die ganzen Audio Session für das vorher verwendete entfernt. Siehe Anhang.

Ich kann mir also nicht vorstellen das dein Kopfhörer über irgend eine Session verfügt.
Da ich sie zur zeit aber noch nicht entferne kracht es halt.
Muss mal sehn wie wir das beheben.

Bin froh wenn das teil mal 100% läuft.

gruss

Geändert von EWeiss (11. Jul 2019 um 16:54 Uhr)
  Mit Zitat antworten Zitat
EWeiss
 
#204
  Alt 12. Dez 2018, 23:19
Zitat:
Lediglich in der Anzeige gab es ein kleines Problem: Die Liste der „selected devices“ hat die Channel-Info überschrieben
Wurde gefixt sollte nun nicht mehr auftreten.

Neue Version hochgeladen.

gruss
  Mit Zitat antworten Zitat
Klavos
 
#205
  Alt 29. Jun 2019, 22:16
Hallo Emil,
ich habe Deine Beiträge zur AudioVolume-Komponente verfolgt,
in der Du u.a. die Unit/Komponente beschreibst.
Wo kann ich jedoch die Unit herunterladen?
Klaus
  Mit Zitat antworten Zitat
EWeiss
 
#206
  Alt 29. Jun 2019, 22:19
Hallo Emil,
ich habe Deine Beiträge zur AudioVolume-Komponente verfolgt,
in der Du u.a. die Unit/Komponente beschreibst.
Wo kann ich jedoch die Unit herunterladen?
Klaus
Mixer64.zip ?

Im Ordner TAudioVolume
Oder meinst du die Komponente? (Die habe ich nicht weiterentwickelt) Nur diese mit den Dynamisch erstellten Devices..
Aber wenn dem so ist.. Bitte im Anhang. Ich gebe gern

gruss

Geändert von EWeiss (17. Jul 2019 um 05:58 Uhr)
  Mit Zitat antworten Zitat
Klavos
 
#207
  Alt 30. Jun 2019, 10:09
Danke Emil!
Oh ja-ich habe es befürchtet :
diese Mixer-Unit (u.a.) sind eine Nummer zu groß für mich!
Ich arbeite mit Delphi6 und bin nicht in der Lage, folgenden
Teilausschnitt aus Deinen Unit's zu extrahieren:
Ich benötige eine (eigene) Ereignisbehandlungsroutine, in der
ich das Ereignis "Volumen-Master-Änderung" behandeln kann.
Bislang mache ich das erfolgreich mit einem Timer-Ereignis,
in dem ich den Pegel des Volumen-Master-Reglers zyklisch abfrage.
Hintergrund: Ich stelle über einen extern (COM-Port) angeschlossenen µP die
Lautstärke des Audio-Leistungsverstärkers äquivalent zur
eingestellten Lautstärke des (PC-)VolumenReglers (Rauschminderung).
Ziel: Ich möchte die zyklische Abfrage durch eine
Ereignisbehandlungsroutine ersetzen.
Kannst Du mir einen Tip geben, wie ich an das Ereignis gelange?
Danke
Klaus
  Mit Zitat antworten Zitat
EWeiss
 
#208
  Alt 30. Jun 2019, 10:23
Du meinst das Event?
Gibt es doch in meiner Komponente..

Siehe App..
procedure AudioVolume1MasterVolumeChanged(ByMyAction: Boolean; Volume: Single; Mute: Boolean);

AudioVolume..
Delphi-Quellcode:
TOnMasterVolumeEvent = procedure(ByMyAction: Boolean; Volume: Single; Mute: Boolean) of object;
//...
FOnMasterVolumeEvent: TOnMasterVolumeEvent;
//..
property OnMasterVolumeChanged
  : TOnMasterVolumeEvent read FOnMasterVolumeEvent write FOnMasterVolumeEvent;
Delphi-Quellcode:
function TAudioVolume.OnNotify(pNotify: PAUDIO_VOLUME_NOTIFICATION_DATA): HResult; stdcall;
begin
  if MainThreadID <> GetCurrentThreadId then
  begin
    TThread.Synchronize(nil,
      procedure
      var
        VolumeData: AUDIO_VOLUME_NOTIFICATION_DATA;
      begin
        VolumeData := pNotify^;

        if Assigned(tbMasterVolume) then
        begin
          tbMasterVolume.Position := round((1.0 - VolumeData.fMasterVolume) * tbMasterVolume.Max);
          ckMasterMute.Checked := VolumeData.bMuted;
        end;
        if Assigned(tbMasterBalance) then
          AdjustMasterBalancePos;

        if Assigned(FOnMasterVolumeEvent) then
          FOnMasterVolumeEvent(MyVolSet, VolumeData.fMasterVolume, VolumeData.bMuted); // hier ist die Rückgabe..
      end);
  end;

  Result := S_OK;
end;
Aber wie ich schon sagte habe die Komponente nicht weiter verfolgt diese kann also Fehler beinhalten.
Ich erstelle die mit meiner Anwendung Mixer64 Dynamisch.. und ist allemal besser als eine Komponente da man dann nicht abhängig von den Visuellen Styles ist die in der Komponente addiert\festgelegt sind.
Zudem muss ich nichts installieren oder Registrieren.

gruss

Geändert von EWeiss (30. Jun 2019 um 13:12 Uhr)
  Mit Zitat antworten Zitat
SearchBot

 
Delphi 10.2 Tokyo Professional
 
#209
  Alt 24. Jul 2019, 13:24
Hallo,

gerade gestern habe ich wieder angefangen, mich mit der Lautstärkesteuerung eines anderen Prozesses zu beschäftigen.
Ich habe dann MfPack durch den Tipp von KodeZwerg entdecken dürfen, aber nicht geblickt.

Dann erinnerte ich mich, dass ich doch mal die einfachere Komponente TAudioVolume vom Stand Mai 2018 geholt hatte, deren Gestaltung mir aber nicht zusagte (ich brauche nur den Trackbar, man kann das andere aber nicht ausblenden oder die Größe verändern [hab es schon mal versucht, bin aber nicht fit im Ändern von Komponenten]).

Heute mache ich also weiter und denke so bei mir, "vielleicht gibt es ja ein Update dieser Komponente..?"

Oh nein, FATAL - EWeiss hat genau heute Morgen das Projekt entfernt!!

Wo bekomme ich denn jetzt die letzte Version von TAudioVolume?
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 02:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf