Audio Endpoint Device - Friendly name

Audio Endpoint Device - Friendly name

offline
  • Pridružio: 14 Feb 2008
  • Poruke: 12404

Kako da dobijem Friendly Name Audio Endpoint uređaja ?



Do sada sam probao :
winmm
ManagementObjectSearcher

Najbolje rešenje koje sam video je WASAPI C++ Wrapper, ali ja ne poznajem dovoljno C++ da napišem to sam a primere na koje sam nailazio nisam mogao da iskoristim.

Dakle treba samo da mi se vrati List<string> ili bilo koja druga kolekcija sa tim prijateljskim nazivima uređaja. To nešto takođe treba da razlikuje Recording i Playback uređaje.

Ima li neko ideju ?

Inače glavna aplikacija je WPF projekat, pisan u C#.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Tako nešto nemaš u C#. Moraćeš malo da se poigraš Win32 interfejsima Smile Evo, ovde sam na brzaka sklepao par interfejsa koji će ti poslužiti za nalaženje endpointa. Pogledaj malo dokumentaciju za IMMDeviceEnumerator interfejs.

[Link mogu videti samo ulogovani korisnici]



offline
  • Pridružio: 14 Feb 2008
  • Poruke: 12404

Srki_82 ::Tako nešto nemaš u C#. Moraćeš malo da se poigraš Win32 interfejsima Smile Evo, ovde sam na brzaka sklepao par interfejsa koji će ti poslužiti za nalaženje endpointa. Pogledaj malo dokumentaciju za IMMDeviceEnumerator interfejs.

[Link mogu videti samo ulogovani korisnici]

Hvala Zagrljaj

Ovo je najjednostavniji i najčistiji kod na koji sam naišao od kad tražim rešenje Very Happy

Ako nekom drugom zatreba, kroz C# se može proći kroz uređaje na ovaj način :

anagementObjectSearcher objSearcher = new ManagementObjectSearcher(            "SELECT * FROM Win32_SoundDevice");     ManagementObjectCollection objCollection = objSearcher.Get();     foreach (ManagementObject obj in objCollection)     {         foreach (PropertyData property in obj.Properties)         {             Console.Out.WriteLine(String.Format("{0}:{1}", property.Name, property.Value));         }     }

Međutim tu nemate friendly device name, već samo hardverske informacije o uređaju :




Drugi način za C# je ovaj : [Link mogu videti samo ulogovani korisnici]

Ali postoji problem sa tim kodom, kod mene recimo uopšte ne vraća tačno uređaje a nije ni rešen problem "prekidanja ispisivanja".

Zatim sam našao na par open source projekata koji koriste WASAPI Wrapper pisan u Cpp-u, Screen Recorder i neki drugi projekat "Endpointcontroller" koji sam počeo da prebacujem u DLL sinoć.

U svakom slučaju, trebalo mi je ovo za GUI Wrapper aplikaciju koja menja aktivni uređaj preko malog widgeta na ekranu, uz pomoć jedne druge aplikacije koja kao argument prima naziv uređaja.

U Srkijevom primeru treba samo da filtriram uređaje koji nisu aktivni i da izvučem samo friendly name property za svaki uređaj.


Btw. možda grešim ali mislim da je ova tema na prvoj strani gugleta a sada ima i primer koji radi bez frke, što nije slučaj sa drugim linkovima.

Hvala Srki Ziveli

offline
  • Pridružio: 14 Feb 2008
  • Poruke: 12404

Hm, zašto release preset pravi ove fajlove uz DLL i da li su mi oni potrebni ?



Testirao sam bez njih i sve radi OK :

Ko je trenutno na forumu
 

Ukupno su 877 korisnika na forumu :: 40 registrovanih, 3 sakrivenih i 834 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: babaroga, bojan581, bojcistv, BraneS, Bubimir, Cigi, cojapop, Dare, djukapfc, Djuro2000, Dovla 1980, draganca, ElGenius, Feller, Folkstar, Futurama, grenadir, Joja, JOntra, Kalem, ladro, Manjane, Mi lao shu, Milan A. Nikolic, Milos ZA, Mirage 2000N, mkukoleca, nnovakis, paja69, Panter, Pilence, Prašinar, proka89, Shajlok, solic, SympathyForTheDevil, Tandrkalo, vensla, vukajlo71, vuksa72