Windows API til at abonnere på VoIP-aktiviteter som 'Sound - > Communications' gør?

Indlæg af Hanne Mølgaard Plasc

Problem



Situation: I Windows 'Kontrolpanel' kan du besøge 'Lyd' widget og skifte til 'Kommunikation' fanen. Der kan du konfigurere, hvor meget \%\% operativsystemet skal reducere alle andre lyde, hvis vi har indgående VoIP-opkald ringer (for ikke at savne opkaldet, ja).


Spørgsmål: Er der nogen API, der giver en udvikler mulighed for at abonnere og reagere på sådanne arrangementer også? (lad dig sige, pause din spil app automatisk, eller 'forstyr ikke' automatisk status for opkaldsvarigheden i din messengerapp eller enhver anden smart ting du kan gøre for bedre brugeroplevelse).


Bemærk: Jeg leder efter OS-bred API, ikke kun 'SDK for VoIP-app X'.

Bedste reference


Det viser sig, at Microsoft termen for dette er Custom Ducking Behavior. Det tilsyneladende ulige navn forklares af Wikipedia-siden om ducking: [1] [2]



  Ducking er en lydeffekt, der almindeligvis anvendes i radio og popmusik,
  især dansemusik. Ved ducking er niveauet af et lydsignal
  reduceret ved tilstedeværelsen af ​​et andet signal. I radio kan dette typisk
  opnås ved at sænke (ducking) lydstyrken af ​​en sekundær lyd
  spor når primærsporet starter, og løft lydstyrken igen, når
  det primære spor er færdigt. En typisk brug af denne effekt i en daglig
  radio produktion rutine er til at skabe en voice-over: en udenlandsk
  sprogets originale lyd er dubbed (og ducked) af en professionel
  højttaler læser oversættelsen. Ducking bliver aktiv så snart som
  oversættelsen starter.



Fra MSDN er de API'er, du skal implementere brugerdefineret duckingadfærd, COM-baserede. Sammenfattende: [3]



  

      
  • MMDevice API til opsummering og valg af multimedieenheder.

  •   
  • WASAPI for at få adgang til kommunikationsindspilningen og gøre enheden, strømstyringsoperationer og håndtering af hændelsesbegivenheder.

  •   
  • WAVE API'er for adgang til kommunikationsenheden og indfangning af lydindgang.

  •   



Kodeprøver til implementering af den ønskede funktionalitet er tilgængelige på de respektive MSDN-sider. [4] [5] [6]