Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In Windows 7 biedt het Configuratiescherm van Windows multimedia, Mmsys.cpl, een nieuw tabblad Communications. Dit tabblad bevat opties waarmee een gebruiker opties kan instellen waarmee wordt gedefinieerd hoe het systeem een communicatieapparaat beheert. Een communicatieapparaat wordt voornamelijk gebruikt voor het plaatsen of ontvangen van telefoongesprekken op de computer. Voor een computer met slechts één renderingapparaat (luidspreker) en één opnameapparaat (microfoon) fungeren deze audioapparaten ook als de standaardcommunicatieapparaten. Wanneer een gebruiker een nieuw apparaat verbindt, zoals een USB-headset, voert het systeem automatische apparaatroldetectie uit door de configuratie-instellingen op te zoeken die door de OEM zijn gevuld. Als het systeem bepaalt dat een apparaat het meest geschikt is voor communicatiedoeleinden, wijst het systeem de eCommunications rol toe aan het apparaat. Voor deze apparaten biedt de Windows 7-Mmsys.cpl de optie standaardcommunicatieapparaat waarmee een gebruiker elk een communicatieapparaat kan selecteren voor audio-rendering (tabbladAfspelen) en audio-opname (tabbladOpname). Het systeem voert automatische functiedetectie uit, maar stelt geen bepaald apparaat in voor communicatie. Dit moet worden gedaan door de gebruiker. Met de nieuwe eCommunications rol kan een toepassing onderscheid maken tussen een apparaat dat door de gebruiker is gekozen voor het verwerken van telefoongesprekken en een apparaat dat moet worden gebruikt als multimediaapparaat (muziek afspelen). Als de gebruiker bijvoorbeeld een headset en een luidspreker heeft aangesloten op de computer, wijst het systeem de eConsole- rol toe aan de luidspreker en de eCommunications rol aan de headset. Nadat de gebruiker de headset heeft geselecteerd die moet worden gebruikt als communicatieapparaat, kunt u een communicatietoepassing ontwikkelen om de headset specifiek te richten voor het weergeven van een audiostream. Een toepassing waarmee de gebruiker de door het systeem toegewezen apparaatrol niet kan wijzigen. Zie Apparaatrollenvoor meer informatie over apparaatrollen.
Communicatietoepassingen, zoals VoIP- en Unified Communication-toepassingen, plaatsen en ontvangen telefoongesprekken via een computer. Een VoIP-toepassing kan bijvoorbeeld een stroom toewijzen die de inbelmelding bevat aan het eindpunt van een communicatieapparaat dat is ingesteld voor het weergeven van audiostreams. Bovendien kan de toepassing de spraakinvoer- en uitvoerstromen openen op de apparaten voor het vastleggen en weergeven van eindpunten die zijn ingesteld als communicatieapparaten.
Als u communicatiemogelijkheden in uw toepassingen wilt integreren, kunt u het volgende gebruiken:
- MMDevice-API-: om een verwijzing naar het eindpunt van het communicatieapparaat op te halen.
- WASAPI-: audiostreams weergeven en vastleggen via het communicatieapparaat. Het besturingssysteem beschouwt de op een communicatieapparaat geopende stroom als een communicatiestroom.
De communicatietoepassing inventariseert apparaten en biedt streambeheer voor een communicatiestroom (rendering of capture) op dezelfde manier als het een niet-communicatiestroom zou beheren met behulp van de Core Audio-API's.
Een van de functies die u in uw communicatietoepassing kunt integreren, is demping of stroomdemping. Dit gedrag definieert wat er moet gebeuren met andere geluiden wanneer een communicatiestroom wordt geopend, zoals wanneer een telefoongesprek wordt ontvangen op het communicatieapparaat. Het systeem kan het audiovolume van de niet-communicatiestroom dempen of verlagen, afhankelijk van de keuze van de gebruiker. Het audiosysteem genereert ducking-gebeurtenissen wanneer een communicatiestroom wordt geopend of gesloten voor het weergeven of vastleggen van streams. Standaard biedt het besturingssysteem een automatische volumeverminderingservaring. Een mediatoepassing kan het standaardgedrag vervangen en deze gebeurtenissen zelf afhandelen om een aangepaste ducking-ervaring te bieden.
In de volgende secties wordt beschreven hoe u Core Audio-API's gebruikt om een aangepaste ducking-ervaring te bieden.
- Standaard-Ducking-ervaring
- de standaard-Ducking-ervaring uitschakelen
- Een aangepaste ducking-gedrag
- Implementatieoverwegingen voor dempingsmeldingen
- Verkrijgen van Ducking Events
Het verkrijgen van een referentie naar het eindpunt van het communicatieapparaat
Als u het communicatieapparaat wilt gebruiken, moet een directe WASAPI-client de apparaten inventariseren met behulp van de enumerator van het apparaat. Haal een verwijzing op naar het eindpunt van het standaardcommunicatieapparaat door IMMDeviceEnumerator::GetDefaultAudioEndpointaan te roepen. In deze aanroep moet de toepassing eCommunications opgeven in de parameter Role om de opsomming van het apparaat te beperken tot communicatieapparaten. Nadat u een verwijzing naar het apparaateindpunt voor het apparaat hebt opgehaald, kunt u de services activeren die zijn gericht op het eindpunt door IMMDevice::Activateaan te roepen. U kunt bijvoorbeeld de IID_IAudioClient service-id doorgeven om een audioclientobject te activeren en dit te gebruiken voor streambeheer, de IID_IAudioEndpointVolume-id om toegang te krijgen tot de volumebesturingselementen van het eindpunt van het communicatieapparaat of de IID_IAudioSessionManager-id om de sessiebeheer te activeren waarmee u kunt communiceren met de beleidsengine van het eindpunt. Zie Stream Management-voor meer informatie over stroombewerkingen.
Met behulp van de IMMDevice verwijzing, hebt u ook toegang tot het eigenschappenarchief voor het apparaateindpunt. Deze eigenschapswaarden, zoals de beschrijvende naam van het apparaat en de naam van de fabrikant, worden ingevuld door de OEM en stellen een toepassing in staat om de kenmerken van een communicatieapparaat te bepalen. Zie Apparaateigenschappenvoor meer informatie.
Met de volgende voorbeeldcode wordt een verwijzing naar het eindpunt van het standaardcommunicatieapparaat opgehaald voor het weergeven van een audiostream.
IMMDevice *defaultDevice = NULL;
hr = CoCreateInstance(__uuidof(MMDeviceEnumerator), NULL,
CLSCTX_INPROC_SERVER,
__uuidof(IMMDeviceEnumerator),
(LPVOID *)&deviceEnumerator);
hr = deviceEnumerator->GetDefaultAudioEndpoint(eRender,
eCommunications, &defaultDevice);
Verwante onderwerpen