2008-09-29 57 views
2

我有一個應該播放音頻文件的C#程序。我已經想出瞭如何使用DirectShow播放Windows具有編解碼器的任何聲音文件,但現在我想在「打開」對話框中正確填寫文件類型過濾器框。我想自動列出Windows具有編解碼器的任何文件格式。如果某個隨機用戶安裝了一個模糊格式的編解碼器,則其相關的擴展名和文件類型描述需要顯示在列表中。獲取可用的Windows音頻文件格式列表

任何想法?

回答

2

如果我沒有記錯,編解碼器不知道哪些文件類型,即文件擴展名,它支持,因爲編解碼器需要一些流作爲輸入,而不是實際上是一個文件。因此,如果您想要顯示支持的音頻文件格式的文件擴展名,除非您有廣泛的文件擴展名和相關編解碼器列表,否則很可能會失敗,但即使如此,您仍然會遇到容器問題格式和所有這一切。

例如,我的Windows Media Player愉快地播放m4b文件,但不知道任何關於它們的信息。我不得不手動將它與文件類型關聯。

0

您可以在Windows註冊表中查找內容類型爲「audio/*」的所有文件類型。具體來說,查看HKCR/Software/*/Content Type下的所有密鑰。

0

只使用mm編解碼器apis。 永遠不要使用註冊表。

0

您可以使用NAudio開源.NET音頻庫來枚舉系統中安裝的所有ACM編解碼器。看看AcmDriver課程。