我有一个应该播放音频文件的C#程序。我已经弄清楚如何使用DirectShow播放Windows具有编解码器的任何声音文件,但现在我想在打开对话框中正确填写文件类型过滤器框。我想自动列出Windows具有编解码器的任何文件格式。如果某个随机用户为隐藏格式安装了编解码器,则其关联的扩展名和文件类型描述需要显示在列表中。
有什么想法吗?
答案 0 :(得分:2)
如果我没记错的话,编解码器不知道它支持哪种文件类型,即文件扩展名,因为编解码器将某些流作为输入而不是实际上是文件。因此,如果您想要显示支持的音频文件格式的文件扩展名,除非您拥有大量的文件扩展名和相关的编解码器,否则您很可能会运气不好,但即便如此,您也会遇到容器问题格式和所有这些。
例如,我的Windows Media Player很乐意播放m4b文件,但对它们一无所知。我不得不手动将其与文件类型相关联。
答案 1 :(得分:0)
您可以在Windows注册表中查找内容类型为“audio / *”的所有文件类型。具体来说,请查看HKCR / Software / * / Content Type下的所有密钥。
答案 2 :(得分:0)
只需使用mm编解码器即可。 切勿使用注册表。
答案 3 :(得分:0)
您可以使用NAudio开源.NET音频库枚举系统上安装的所有ACM编解码器。看一下AcmDriver
课程。