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

C# 获取可用Windows音频文件格式的列表,c#,windows,audio,C#,Windows,Audio,我有一个C#程序,可以播放音频文件。我已经知道如何使用DirectShow播放Windows有编解码器的任何声音文件,但现在我想在“打开”对话框中正确填充“文件类型过滤器”框。我想自动列出Windows有编解码器的任何文件格式。如果某个随机用户安装了一个模糊格式的编解码器,则其相关扩展名和文件类型说明需要显示在列表中 有什么想法吗?如果我没记错的话,编解码器不知道它支持哪些文件类型,即文件扩展名,因为编解码器接受一些流作为输入,而不是实际的文件。因此,如果您想要显示支持的音频文件格式的文件扩展名

我有一个C#程序,可以播放音频文件。我已经知道如何使用DirectShow播放Windows有编解码器的任何声音文件,但现在我想在“打开”对话框中正确填充“文件类型过滤器”框。我想自动列出Windows有编解码器的任何文件格式。如果某个随机用户安装了一个模糊格式的编解码器,则其相关扩展名和文件类型说明需要显示在列表中


有什么想法吗?

如果我没记错的话,编解码器不知道它支持哪些文件类型,即文件扩展名,因为编解码器接受一些流作为输入,而不是实际的文件。因此,如果您想要显示支持的音频文件格式的文件扩展名,那么您很可能运气不佳,除非您有大量的文件扩展名和相关编解码器列表,但即使如此,您也会遇到容器格式等问题


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

您可以在Windows注册表中查找内容类型为“audio/*”的所有文件类型。具体来说,请查看HKCR/Software/*/Content-Type下的所有键。

只需使用mm编解码器API即可。 切勿使用注册表。

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