Winmm.dll не воспроизводит определенные звуки WAV? - PullRequest
0 голосов
/ 09 марта 2012

Очевидно, что Windows внесла некоторые значительные изменения в аудио архитектуру в Windows Vista. Насколько я понимаю, некоторые «устаревшие кодеки» не включены в Vista и выше, но я не уверен, является ли это причиной проблемы.

Я программирую на Delphi, и в настоящее время использую winmm.dll из библиотеки Windows и его метод PlaySound для воспроизведения файлов WAV. Кажется, что есть несколько файлов WAV, которые не может воспроизводить эта DLL. Интересно, что проигрыватель Windows Media может воспроизводить сбойные звуки, однако звуковой апплет панели управления Windows также не может воспроизводить сбойные звуки, поэтому я подозреваю, что это может быть ограничением библиотеки, которую я использую для воспроизведения звуков, и не вызвано напрямую приложение. Однако это приводит к плохому восприятию пользователем из-за сбоя звуковых файлов без уведомления пользователя о том, что файл каким-то образом неисправен и не может использоваться.

Итак ... есть ли другая библиотечная функция, которую я должен использовать вместо этого для воспроизведения звуков WAV, которая имеет большую поддержку кодеков и сможет воспроизводить эти битые файлы, как проигрыватель Windows Media, или, если нет, есть? другой вызов функции, который я мог бы использовать, чтобы проверить, является ли WAV действительным / воспроизводимым, чтобы я мог уведомить пользователя о том, что внутренний формат файла не поддерживается?

1 Ответ

0 голосов
/ 15 марта 2012

Window Media Player использует DirectShow, что дает вам лучшую производительность и большую гибкость, чем PlaySound под MCI.Тем не менее, может показаться, что для воспроизведения звука с DirectShow требуется немало усилий по сравнению с MCI.

Посмотрите на компонент cbAudioPlay Карлоса Барбосы, поскольку он является хорошим примеромиспользуя DirectShow и содержит необходимые библиотеки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...