2008-09-29 2 views
2

У меня есть программа на C#, которая должна воспроизводить аудиофайлы. Я понял, как играть в любой звуковой файл, для которого Windows имеет кодек с помощью DirectShow, но теперь я хочу правильно заполнить поле фильтра типа файла в диалоговом окне «Открыть». Я хотел бы автоматически указать любой формат файла, для которого Windows имеет кодек. Если какой-либо случайный пользователь устанавливает кодек для неясного формата, его соответствующие расширения (ы) и описания типов файлов должны отображаться в списке.Получить список доступных форматов аудиофайлов Windows

Любые идеи?

ответ

2

Если я правильно помню, кодек не знает, какие типы файлов, то есть расширения файлов, он поддерживает, поскольку кодек берет некоторый поток как входной, а не фактически файл. Поэтому, если вы хотите отобразить расширения файлов поддерживаемых форматов аудиофайлов, вам, скорее всего, не повезло, если у вас нет обширного списка расширений файлов и связанных кодеков, но даже тогда у вас появятся проблемы с контейнером форматы и все такое.

Например, мой Windows Media Player с удовольствием воспроизводит файлы m4b, но ничего не знает о них. Мне пришлось связать его вручную с типом файла.

0

Вы можете посмотреть в реестре Windows для всех типов файлов с типом контента «audio/*». В частности, посмотрите на все ключи под HKCR/Software/*/Content Type.

0

Просто используйте mm codec apis. Никогда не используйте реестр.

0

Вы можете использовать библиотеку аудиоформатов с открытым исходным кодом с открытым исходным кодом для перечисления всех кодеков ACM, установленных в вашей системе. Взгляните на класс AcmDriver.

Смежные вопросы