Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   [Open Source] Speedy Tray Audio Output Device Changer (nonVCL) (https://www.delphipraxis.net/169060-%5Bopen-source%5D-speedy-tray-audio-output-device-changer-nonvcl.html)

lbccaleb 26. Jun 2012 17:07

[Open Source] Speedy Tray Audio Output Device Changer (nonVCL)
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hey Ho,

nach langer Zeit gibt es von mir auch mal wieder was neues.
Ich hoffe, der ein oder andere kann damit was anfangen 8-)

Nachdem ja vor kurzem dieser Thread hier zu finden war,
ich ein wenig Langeweile und Lust gehabt hab mich dort weiterzubilden, ist das kleine Tool

Speedy_Tray_Output_Device_Changer

entstanden.

Die Funktionen sollten klar sein,
es wächselt einfach das Standart DirectX Audio Ausgabe Gerät.
Über ein kleines Tray Symbol (siehe Screenshot).
Ist also nichts Atemberaubendes :lol:
Nen bischen anders siehts dort allerdings schon beim Code aus.
Alles wurde Programm Technisch gelöst, und ausserdem ist die von mir geschriebene Unit(Klasse) für die Callback Funktion enthalten.
Die kann den einen oder anderen bestimmt noch behilflich sein ;)

Enthalten sind ausserdem die ganzen benötigten API-Units. Bei welchen ich allerdings nicht genau sagen kann, wer da wo sein Copyright hat, da die Units mehr oder weniger zusammen gefischt sind und ein Teil der Übersetzung auch von mir selber stammt.
Bei der Unit "PolicyConfigAPI.pas" kann es zu dem sein, dass nicht alles richtig Übersetzt ist, da diese API Funktionen von Microsoft nicht Dokumentiert sind.
(Ich habe sogar gelesen, dass die Jungs das gar nicht so gut finden, wenn darauf zugegriffen wird. Wieso auch immer! Denn jedes kleine DVD Tool hat heute schon die Möglichkeit) :shock:

Wer da durchsteigt, der kann auf ganz einfach Weise, auch mit den Units viel mehr Sachen im Bereich Audio anstellen.

Möglich sind hiermit:
  • Auf Geräte wechsel reagieren
  • Lautstärke ändern (Systemweit und Programm weit)
  • Auf Geräte Statuswechsel reagieren
  • Callback Funktion (Direkte benachrichtigung im Programm)

Von dem eigentlichen Programm hängt ein kleiner Screenshot an.
Im Archiv befinded sich der fertige Code, und das Kompilat.

Stichworte: nonVCL, TrayIcon, PopupMenu, MMSystem, PolicyConfig, Callback, PropSys, DirectX, Message Window, IAudioEndpointVolume, IMMDevice, IMMDeviceCollection, IMMNotificationClient, IMMDeviceEnumerator, IPolicyConfig, IPolicyConfigVista, IPropertyStore, _tagpropertykey

himitsu 26. Jun 2012 18:52

AW: [Open Source] Speedy Tray Audio Output Device Changer (nonVCL)
 
Und jetzt fehlt nur noch einwas ... also wenn dir wirklich mal extrem langweilig sein sollte.
Unter Windows 7 kann man ja jedes Programm einzeln über den "Mixer" lautstärkesteuern.

Du stellst aber nur die "Standard"-Angabe um, aber laufende Programme, welche schon Töne ausgegeben haben, sind schon verbunden und deren Zuweisung wird nicht direkt geändert.
Kann es zwar grade nicht testen, aber als ich es letzens in dem Windowsdialog umgestellt hatte, lief Firefox immernoch auf dem "alten" Ausgabekanal.
Das änderte sich erst bei Neustart des Programms, bzw. beim trennen des falschen Audiogerätes (bei mir abziehen des USB-Steckers zur Soundkarte, aber vermutlich auch beim deaktiveren des Gerätes)

Im Mixer kann man links über Master-Regler über eine Dropdownbox das Ausgabegerät wechseln und irgendwie wäre es schön, wenn die Programme auch auf das neue Gerät umgestellt werden.


Bzw. vielleicht kann man dann auch jedes Programm einzeln einem Gerät zuweisen, was bestimmt auch cool wäre?

EWeiss 26. Jun 2012 20:11

AW: [Open Source] Speedy Tray Audio Output Device Changer (nonVCL)
 
Sieht mal nicht schlecht aus was ich so gesehen habe. ;)
Aber so richtig getestet habe ich es noch nicht.

gruss

lbccaleb 6. Jul 2012 15:48

AW: [Open Source] Speedy Tray Audio Output Device Changer (nonVCL)
 
Zitat:

Zitat von himitsu (Beitrag 1172560)
Und jetzt fehlt nur noch einwas ... also wenn dir wirklich mal extrem langweilig sein sollte.
Unter Windows 7 kann man ja jedes Programm einzeln über den "Mixer" lautstärkesteuern.

Möglich währe das wohl, mal sehen wann mir dann mal "total" langweilig ist :stupid:
Eigentlich hatte ich das ja nur mal geschrieben, um du demonstrieren, wie man das in Delphi anstellen kann.
Hatte mir zuerst gedacht, mhh das wohl nicht schwer aber, musste dann aber schnell feststellen, das es da noch nichts ordentliches für Delphi imm gesammten Netz gab. Nun ja, dann hab ich mir nen bissel was bei C++ abgesehn und noch bissel selber probiert, bis ich hinter das "Geheimnis" gekommen bin, wie das funktioniert :-D

Eventuell lass ich mir hier später noch ein paar Sachen zu einfallen, denn damit kann man nun ziemlich viel Anstellen im Media Bereich ;)

Zitat:

Zitat von EWeiss (Beitrag 1172575)
Sieht mal nicht schlecht aus was ich so gesehen habe. ;)
Aber so richtig getestet habe ich es noch nicht.

gruss

Danke ;)

PeterPanino 16. Okt 2012 02:35

AW: [Open Source] Speedy Tray Audio Output Device Changer (nonVCL)
 
Zitat:

Zitat von himitsu (Beitrag 1172560)
Bzw. vielleicht kann man dann auch jedes Programm einzeln einem Gerät zuweisen, was bestimmt auch cool wäre?

Davon träumen viele, auch ich träume schon lange davon. Bis jetzt hat das aber noch niemand geschafft ...

Back2Code 21. Okt 2012 19:01

AW: [Open Source] Speedy Tray Audio Output Device Changer (nonVCL)
 
Autostartfunktion wäre noch cool & den Bug fixxen, das wenn man im Tray Rechtsklick draufmacht und dann iwo auf den Desktp klickt das Popmenü sich auch wieder schließt.

himitsu 21. Okt 2012 20:16

AW: [Open Source] Speedy Tray Audio Output Device Changer (nonVCL)
 
Autostart ist leicht.

Zieh das Programm auf das Startmenü, Alle Programme und dann in Autostart rein. und wenn was von "kopieren" im Hint steht, dann drücke beim Loslassen auch noch die Alt-Taste.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 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