Lettura dell'audio multicanale

Il codec Windows Media Audio 9 Professional può codificare audio multicanale (più di due canali). Quando si legge un file con audio multicanale, è necessario configurare l'output correttamente o l'audio verrà recapitato in una qualità inferiore e in stereo. Per impostare un output per la distribuzione audio multicanale, è necessario impostare due impostazioni di output: g_wszEnableDiscreteOutput e g_wszSpeakerConfig.

L'impostazione di g_wszEnableDiscreteOutput su TRUE imposta il codec per offrire output audio ad alta definizione. L'audio ad alta definizione è codificato dal codec Windows Media Audio 9 con esempi a 24 bit in stereo o più canali. Se questa impostazione è FALSE, verrà recapitato solo l'output stereo a 16 bit.

Il numero di altoparlanti nel computer di riproduzione è impostato con g_wszSpeakerConfig. Questa impostazione è un valore DWORD impostato su una delle costanti dell'altoparlante DirectSound elencate nella tabella seguente. Per risolvere questi nomi costanti per il compilatore, è necessario includere dsound.h.

Costante Valore Descrizione
DSSPEAKER_DIRECTOUT 0x00000000 L'audio viene passato direttamente, senza essere configurato per gli altoparlanti.
DSSPEAKER_HEADPHONE 0x00000001 Il computer client è dotato di cuffie.
DSSPEAKER_MONO 0x00000002 Il computer client è dotato di un altoparlante monaurale.
DSSPEAKER_QUAD 0x00000003 Il computer client è dotato di altoparlanti quadrafonici.
DSSPEAKER_STEREO 0x00000004 Il computer client è dotato di altoparlanti stereo.
DSSPEAKER_SURROUND 0x00000005 Il computer client è dotato di altoparlanti surround a quattro canali.
DSSPEAKER_5POINT1 0x00000006 Il computer client è dotato di cinque altoparlanti e un mdf.
DSSPEAKER_7POINT1 0x00000007 Il computer client è dotato di sette altoparlanti e un mdf.

 

Per impostare queste impostazioni, usare IWMReaderAdvanced2::SetOutputSetting.

Infine, affinché i canali vengano restituiti in modo discreto, senza piegare lo stereo, è necessario impostare il tipo di supporto corretto sull'output seguendo questa procedura:

  1. Chiamare IWMReader::GetOutputFormatCount per ottenere il numero di formati supportati per l'output audio pertinente. Gli indici di formato di output sono basati su zero.
  2. Per ogni formato supportato, chiamare IWMReader::GetOutputFormat per recuperare l'interfaccia IWMOutputMediaProps nell'oggetto proprietà dei supporti di output.
  3. Chiamare IWMMediaProps::GetMediaType per recuperare il tipo di supporto.
  4. Se il tipo di supporto recuperato è il tipo multicanale desiderato, impostarlo chiamando IWMReader::SetOutputProps.

Dopo aver impostato l'output discreto e la configurazione dell'altoparlante, i formati di output enumerati dal lettore devono includere formati multicanale che usano la struttura WAVEFORMATEXTENSIBLE . Se si enumera i formati di output prima di impostare le proprietà, verranno inclusi solo formati con 1 o 2 canali e un massimo di 16 bit per canale. Come per altri formati audio, è consigliabile usare solo i formati enumerati dal lettore; non configurare il proprio.

Nota

È possibile restituire audio multicanale solo se l'applicazione è in esecuzione in Microsoft Windows XP o in una versione successiva di Microsoft Windows.

 

Input, Flussi e output

Lettura dei file ASF

Impostazioni di output

Uso dell'audio PCM High-Resolution