Audio met meerdere kanalen lezen
[De functie die is gekoppeld aan deze pagina, Windows Media Format 11 SDK, is een verouderde functie. Het is vervangen door Source Reader en Sink Writer. Bronlezer en Sink Writer zijn geoptimaliseerd voor Windows 10 en Windows 11. Microsoft raadt ten zeerste aan om nieuwe code te gebruiken bronlezer en Sink Writer- in plaats van Windows Media Format 11 SDK, indien mogelijk. Microsoft stelt voor dat bestaande code die gebruikmaakt van de verouderde API's, indien mogelijk opnieuw worden geschreven om de nieuwe API's te gebruiken.]
De Windows Media Audio 9 Professional-codec kan audio met meerdere kanalen coderen (meer dan twee kanalen). Wanneer u een bestand met meerdere kanalen audio leest, moet u de uitvoer correct configureren of wordt de audio geleverd met een lagere kwaliteit en in stereo. Als u een uitvoer wilt instellen voor audiolevering met meerdere kanalen, moet u twee uitvoerinstellingen instellen: g_wszEnableDiscreteOutput en g_wszSpeakerConfig.
Als u g_wszEnableDiscreteOutput instelt op TRUE stelt u de codec in om audio-uitvoer met hoge definitie te leveren. High-definition audio wordt gecodeerd door de Windows Media Audio 9-codec met 24-bits voorbeelden in stereo of meerdere kanalen. Als deze instelling is FALSE, wordt er slechts 16-bits stereo-uitvoer geleverd.
Het aantal luidsprekers op de afspeelcomputer is ingesteld met g_wszSpeakerConfig. Deze instelling is een DWORD--waarde ingesteld op een van de DirectSound-luidsprekerconstanten die in de volgende tabel worden vermeld. Als u deze constante namen voor uw compiler wilt omzetten, moet u dsound.h opnemen.
Constante | Waarde | Beschrijving |
---|---|---|
DSSPEAKER_DIRECTOUT | 0x00000000 | De audio wordt rechtstreeks doorgegeven, zonder te worden geconfigureerd voor luidsprekers. |
DSSPEAKER_HEADPHONE | 0x00000001 | De clientcomputer is uitgerust met een hoofdtelefoon. |
DSSPEAKER_MONO | 0x00000002 | De clientcomputer is uitgerust met een monaurale luidspreker. |
DSSPEAKER_QUAD | 0x00000003 | De clientcomputer is uitgerust met quadrafonische luidsprekers. |
DSSPEAKER_STEREO | 0x00000004 | De clientcomputer is uitgerust met stereoluidsprekers. |
DSSPEAKER_SURROUND | 0x00000005 | De clientcomputer is uitgerust met surround-sound luidsprekers van vier kanalen. |
DSSPEAKER_5POINT1 | 0x00000006 | De clientcomputer is uitgerust met vijf luidsprekers en een subwoofer. |
DSSPEAKER_7POINT1 | 0x00000007 | De clientcomputer is uitgerust met zeven luidsprekers en een subwoofer. |
Gebruik IWMReaderAdvanced2::SetOutputSettingom deze instellingen in te stellen.
Ten slotte moet u het juiste mediatype instellen op de uitvoer door de volgende stappen uit te voeren om de kanalen afzonderlijk uit te voeren, zonder in te vouwen naar stereo:
- Roep IWMReader::GetOutputFormatCount om het aantal ondersteunde indelingen voor de relevante audio-uitvoer op te halen. Indexen voor uitvoerindelingen zijn gebaseerd op nul.
- Roep voor elke ondersteunde indeling IWMReader::GetOutputFormat aan om de IWMOutputMediaProps interface op te halen op het object met eigenschappen van uitvoermedia.
- Roep IWMMediaProps::GetMediaType aan om het mediatype op te halen.
- Als het opgehaalde mediatype het gewenste type meerdere kanalen is, stelt u dit in door IWMReader::SetOutputPropsaan te roepen.
Nadat u discrete uitvoer en de luidsprekerconfiguratie hebt ingesteld, moeten de uitvoerindelingen die door de lezer zijn geïnventariseerd, meerdere kanalen bevatten die gebruikmaken van de WAVEFORMATEXTENSIBLE- structuur. Als u de uitvoerindelingen opsomt voordat u de eigenschappen instelt, worden alleen indelingen met 1 of 2 kanalen en maximaal 16 bits per kanaal opgenomen. Net als bij andere audio-indelingen moet u alleen de indelingen gebruiken die door de lezer zijn opgesomd; configureer niet uw eigen.
Notitie
U kunt audio met meerdere kanalen alleen uitvoeren als uw toepassing wordt uitgevoerd op Microsoft Windows XP of een latere versie van Microsoft Windows.
Verwante onderwerpen