Удаление кода для обработки больше 16 бит
[Функция, связанная с этой страницей, Медиаплеер Windows SDK, является устаревшей функцией. Он был заменен MediaPlayer. MediaPlayer оптимизирован для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует по возможности использовать MediaPlayer вместо пакета SDK для Медиаплеер Windows. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]
Так как этот пример обрабатывает только 8- или 16-разрядный звук, необходимо изменить код в CEcho::ValidateMediaType , чтобы вернуть DMO_E_TYPE_NOT_ACCEPTED для типов мультимедиа, превышающих 16 бит. Для этого необходимо изменить код в блоке switch, который проверяет форматы типа WAVE_FORMAT_EXTENSIBLE. Замените код мастера следующим примером кода:
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;
Затем удалите или закомментируйте разделы кода в DoProcessOutput , которые обрабатывают звук с высоким разрешением битов. Эти разделы начинаются с вариантов 24 и 32.
Связанные темы
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по