Quitar el código para procesar más de 16 bits

[La característica asociada a esta página, Reproductor multimedia de Windows SDK, es una característica heredada. Se ha reemplazado por MediaPlayer. MediaPlayer se ha optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer en lugar de Reproductor multimedia de Windows SDK, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

Dado que este ejemplo solo procesa audio de 8 o 16 bits, debe modificar el código en CEcho::ValidateMediaType para devolver DMO_E_TYPE_NOT_ACCEPTED para los tipos de medios mayores de 16 bits. Para ello, debe cambiar el código del bloque switch que prueba los formatos de tipo WAVE_FORMAT_EXTENSIBLE. Reemplace el código del asistente por el código de ejemplo siguiente:

case WAVE_FORMAT_EXTENSIBLE:
    {
         // Sample size is greater than 16-bit or is multichannel.
        WAVEFORMATEXTENSIBLE *pWaveXT = (WAVEFORMATEXTENSIBLE *) pWave;

        if (KSDATAFORMAT_SUBTYPE_PCM != pWaveXT->SubFormat)
        {
            return DMO_E_TYPE_NOT_ACCEPTED;
        }
    }
    break;

A continuación, elimine o convierta en comentario las secciones de código en DoProcessOutput que controlan el audio de alta resolución de bits. Estas son las secciones que comienzan por el caso 24 y el caso 32.

Implementación de CEcho::D oProcessOutput