Come emulare/sostituire/riattivare i controlli (o comandi) classici del Mixer audio in Windows Vista?

StackOverflow https://stackoverflow.com/questions/71198

Domanda

Ho un problema (e ce l'ho ormai da un po' di tempo): il nuovo stack del mixer audio in Vista presenta nuove cose interessanti, ma reinventa anche la ruota.Molte applicazioni che utilizzavano Volume Mixer su un sistema Windows per mixare diverse uscite sonore in un unico ingresso (ad esempio Wave-out + Line-in --> Stereo Mix) da allora hanno smesso di funzionare.Il primo esempio di questo comportamento è il plugin Shoutcast DSP (potrebbe essere utile per testare la soluzione).

Come posso riattivare i controlli del mixer XP o magari emulare questo comportamento in qualche modo, in modo che il programma (SC DSP) possa gestire correttamente il volume di riproduzione del microfono/line-in insieme al volume di riproduzione dell'onda in uscita?

Il mio pensiero sarebbe quello di emulare un programma collegato al Mixer di Vista per Wave-Out e Line-out (o volume dell'altoparlante del microfono - tutta la riproduzione, mostrata come "programmi" regolabili separati in modo che il Mixer di Vista possa fare riferimento ad esso) e "agganciarlo" al sistema tramite qualche emulazione che si presenta come la vecchia interfaccia di controllo del mixer del volume per il programma, ma francamente non ho idea di come farlo.

Chiarire:questo non è il mio PC (è un laptop HP Pavilion).Il problema sembra esistere principalmente a causa del fatto che il mixer di Vista controlla programmi separati, non ingressi/uscite separati.L'hardware è pienamente in grado di fare ciò che è necessario quando si utilizza Windows XP.Sono ben consapevole del fatto che si tratta di un problema di driver, ma il driver è semplicemente preparato per ciò che Vista presenta al programmatore attraverso le interfacce.Il dispositivo mixer, come visto nel sistema operativo, comunque possa apparire nel software, si basa sulle API mixer per il controllo audio di Windows.

Cerca utilizzando Google su Vista e il controllo del volume di riproduzione line-in per ulteriori informazioni sul problema (e sull'enorme quantità di utenti interessati).Naturalmente, una riscrittura del plug-in Shoutcast Source DSP per WinAMP basterebbe, ma è improbabile che ciò accada...

È stato utile?

Soluzione

È possibile controllare i livelli di volume dei singoli livelli di ingresso/uscita della scheda audio nel mixer di Windows Vista utilizzando l'audio API EndPoint

Ciò dovrebbe consentire di regolare il volume principale e il volume di e collegato ingressi audio.Un problema è che quando si enumerano i punti finali, se non c'è un microfono collegato alla scheda audio, non verrà enumerato nulla.Ciò significa che dovrai modificare la tua applicazione per rispondere agli eventi "microfono collegato" e avvisare l'utente in modo appropriato.

Un'altra opzione è quella di immergersi sotto Microsoft Core Audio e accedere a WaveRT direttamente l'autista.Questo richiede molto più lavoro rispetto all'utilizzo delle API WASAPI/Endpoint, ma ti darà il massimo controllo sull'accesso agli input/output della scheda audio.

Altri suggerimenti

Il driver audio controlla quali controlli del mixer sono disponibili e ciò dipenderà in gran parte dalle capacità dell'hardware.

Se il driver di Vista non dispone di determinati controlli, è probabile che si tratti di un difetto di quel driver e non di Vista.

(Per favore comunicaci quale scheda audio/dispositivo stai utilizzando.)

Sarebbe possibile scrivere un programma per creare i propri controlli del mixer (si tratterebbe di un driver solo software per una scheda audio virtuale), ma questo programma non sarebbe in grado di influenzare il routing dell'audio all'interno del dispositivo se il driver effettivo non ha alcun controllo del mixer per questo.

Se contrassegni la tua app come compatibile con Windows XP, tutti i vecchi controlli e comportamenti verranno ripristinati.

Se contrassegni la tua app come compatibile con Windows XP, tutti i vecchi controlli e comportamenti verranno ripristinati.

Questo è vero, ma a partire dalla patch KB957388 di Vista SP1, inclusa in SP2, e con alcuni driver della scheda audio, le vecchie funzioni API del mixer (winmm.dll) possono bloccarsi quando l'app è in modalità compatibilità XP.In particolare, mixerGetNumDevs e meno spesso mixerOpen non verranno restituiti su alcuni computer.

Ho ricevuto segnalazioni da 5 utenti Vista su un totale di circa 200 utenti Vista in cui la mia app si blocca all'avvio e sono riuscito a risalire a queste funzioni bloccate.

Vorrei segnalarlo a Microsoft ma non riesco a trovare nessun posto dove farlo.

Tutto quello che posso fare ora è rilasciare il mio software senza la modalità compatibilità abilitata, ma questo perde funzionalità nella mia app e il software non può controllare i mixer line-in o microfono.

Non ho tempo per lavorare direttamente con le funzioni API di basso livello.Mi affido a componenti di alto livello e non riesco a trovarne nessuno per le nuove API audio per il mio sistema di sviluppo (Delphi).

Sarei interessato a pagare qualcuno per scrivere una DLL per me!!!e-mail ross att stationplaylist dott com

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top