AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte [Open Source] Speedy Tray Audio Output Device Changer (nonVCL)
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von lbccaleb · begonnen am 26. Jun 2012 · letzter Beitrag vom 21. Okt 2012
Antwort Antwort
Benutzerbild von lbccaleb
lbccaleb
Registriert seit: 25. Mai 2006
Hey Ho,

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

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
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)

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
Miniaturansicht angehängter Grafiken
stodc.png  
Angehängte Dateien
Dateityp: zip Speedy_Tray_Output_Device_Changer.zip (79,8 KB, 181x aufgerufen)
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
 
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#2
  Alt 26. Jun 2012, 19:52
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?
  Mit Zitat antworten Zitat
EWeiss
 
#3
  Alt 26. Jun 2012, 21:11
Sieht mal nicht schlecht aus was ich so gesehen habe.
Aber so richtig getestet habe ich es noch nicht.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

 
Delphi 7 Enterprise
 
#4
  Alt 6. Jul 2012, 16:48
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
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

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

Sieht mal nicht schlecht aus was ich so gesehen habe.
Aber so richtig getestet habe ich es noch nicht.

gruss
Danke
Martin
  Mit Zitat antworten Zitat
PeterPanino

 
Delphi 10.4 Sydney
 
#5
  Alt 16. Okt 2012, 03:35
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 ...
  Mit Zitat antworten Zitat
Benutzerbild von Back2Code
Back2Code

 
Delphi XE7 Professional
 
#6
  Alt 21. Okt 2012, 20:01
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#7
  Alt 21. Okt 2012, 21:16
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.
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 00:12 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