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