lyd - Hvordan emulere/erstatte/genaktivere klassiske lydmixerkontroller (eller kommandoer) i Windows Vista?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har et problem (og har haft det i nogen tid nu) - den nye lydmixerstabel i Vista har nye, kølige ting, men genopfinder også hjulet. Mange applikationer, der plejede at bruge Volume Mixer på et Windows-system til at blande forskellige voiced outputs til en indgang (for eksempel Wave-out + Line-in -> Stereo Mix) er siden stoppet med at fungere. Det primære eksempel på denne adfærd er Shoutcast DSP plugin (kan være nyttigt til løsningstestning).


Hvordan kan jeg genaktivere XP-mixer-kontroller eller måske efterligne denne adfærd på en måde, således at programmet (SC DSP) korrekt kan styre mikrofon/line-in afspilningsvolumen sammen med Wave-out afspilningsvolumen?


Min tankegang ville være at efterligne et program, der er indkapslet i Vista Mixer til Wave-Out og Line-out (eller Mic-højttalervolumen - al afspilning, vist som separate justerbare 'programmer', så Vista Mixer kunne henvise til det) og 'hak' det ind i systemet under en vis emulation, der repræsenterer sig selv som den gamle volumen mixer kontrol grænseflade til programmet, men jeg har ærligt ingen anelse om, hvordan man gør det.


At afklare: Dette er ikke min pc (det er en HP Pavilion laptop). Problemet synes at eksistere, hovedsagelig på grund af, at Vista mixer styrer separate programmer, ikke separate indgange/udgange. Hardwareen er fuldt ud i stand til at gøre hvad der er nødvendigt, når du bruger Windows XP. Jeg er meget opmærksom på, at dette er et chaufførproblem, men chaufføren er simpelthen klar til, hvad Vista præsenterer til programmøren via grænseflader. Mixerenheden - som det ses i operativsystemet, men det kan se ud i software - er baseret på mixer-API'erne til Windows Audio-kontrol.


Søg ved hjælp af Google på Vista og indspilning af lydstyrkekontrol for at få flere oplysninger om problemet (og det store antal brugere, der er berørt af det). Selvfølgelig vil en omskrivning af Shoutcast Source DSP plug-in til WinAMP gøre tricket, men det vil sandsynligvis ikke ske ...

Bedste reference


Styring af lydstyrkeniveauerne på et lydkort indivudual input/output niveauer i Windows Vista mixer er mulig ved hjælp af Audio EndPoint API [1]


Dette skal give dig mulighed for at justere hovedvolumenet og mængden af ​​og tilsluttet lydindgange. En rynke om dette, at når du tæller endepunkterne, hvis der ikke er en mikrofon, der er tilsluttet dit lydkort, så bliver der ikke opregnet noget. Det betyder at du skal ændre din ansøgning for at reagere på 'mikrofon plugged in' hændelser og underrette brugeren korrekt.


En anden mulighed er at dyppe under Microsoft Core Audio og få adgang til WaveRT-driveren direkte. Dette er meget mere arbejde end at bruge WASAPI/Endpoint API'erne, men giver dig mest kontrol over adgangen til lydkortets indgange/udgange. [2]

Andre referencer 1


Lyddriveren styrer, hvilke blanderkontroller der er til rådighed, og dette afhænger i høj grad af hardwareens egenskaber.


Hvis Vista-driveren ikke har visse kontroller, er det sandsynligvis at være en mangel på den driver og ikke Vista.


(Fortæl os venligst hvilket lydkort/enheden du bruger.)


Det ville være muligt at skrive et program til at oprette dine egne mixer kontroller (dette ville være en software-only driver til et virtuelt lydkort), men dette program ville ikke kunne påvirke lyd routing inde i enheden, hvis den faktiske driver har ikke noget mixer kontrol til dette.

Andre referencer 2


Hvis du markerer din app som kørende i Windows XP-kompatibilitet, vil alle de gamle kontroller og adfærd komme tilbage.

Andre referencer 3



  Hvis du markerer din app som kørende i Windows XP-kompatibilitet, vil alle de gamle kontroller og adfærd komme tilbage.



Dette er sandt, men fra Vista SP1-patch KB957388, der er inkluderet i SP2, og med nogle lydkortdrivere, kan de gamle mixer-API (winmm.dll) -funktioner hænge, ​​når appen er i XP-kompatibilitetsmodus. Blandt andet vil mixerGetNumDevs og mindre ofte mixerOpen ikke vende tilbage på nogle computere.


Jeg har fået rapporter fra 5 Vista brugere ud af omkring 200 Vista brugere i alt, hvor min app hænger, når du starter, og jeg har sporet det ned til disse funktioner hængende.


Jeg vil gerne rapportere dette til Microsoft, men kan ikke finde nogen steder at gøre det.


Alt jeg kan gøre nu, er at frigive min software uden kompatibilitetstilstand aktiveret, men det taber funktionalitet i min app, og softwaren kan ikke styre line-in- eller mikrofonblanderne.


Jeg har ikke tid til at arbejde med API-funktioner på lavt niveau direkte. Jeg er afhængig af komponenter på højt niveau, og jeg kan ikke finde nogen til de nye lyd-API'er for mit udviklingssystem (Delphi).


Jeg ville være interesseret i at betale nogen til at skrive en DLL for mig !!!
e mail ross at stationplaylist dott com