获取可用的Windows音频文件格式的列表

时间:2020-03-06 14:53:41  来源:igfitidea点击:

我有一个应该可以播放音频文件的C程序。我已经弄清楚了如何使用DirectShow播放Windows带有编解码器的任何声音文件,但是现在我想在"打开"对话框中正确填写文件类型过滤器框。我想自动列出Windows具有编解码器的任何文件格式。如果某些随机用户安装了晦涩格式的编解码器,则其相关的扩展名和文件类型描述需要显示在列表中。

有任何想法吗?

解决方案

如果我没记错的话,编解码器不知道它支持哪些文件类型,即文件扩展名,因为编解码器将某些流作为输入而不是文件。因此,如果我们要显示受支持的音频文件格式的文件扩展名,除非我们有大量的文件扩展名和相关的编解码器列表,否则很可能不走运,但是即使如此,我们仍然会遇到容器问题格式等等。

例如,我的Windows Media Player可以愉快地播放m4b文件,但对它们一无所知。我必须手动将其与文件类型相关联。

我们可以在Windows注册表中查找内容类型为" audio / *"的所有文件类型。具体来说,请查看HKCR /软件/ * /内容类型下的所有键。

只需使用mm编解码器api。
永远不要使用注册表。

我们可以使用NAudio开源.NET音频库枚举系统上安装的所有ACM编解码器。看一看AcmDriver类。