2009-04-10 62 views
5

我正在尋找跨平臺(Windows,MacOSX和Linux上的.Net和Mono)解碼wav,mp3或ogg文件的方式,以便我可以根據需要通過DirectSound或OpenAL播放解碼流。如何解碼.Net/Mono中的wav,mp3和/或ogg?

可以解碼mp3或ogg的解決方案就足夠了 - 解碼兩者都不是必需的。如果它(或其他解決方案)也可以解碼wav,那將是理想的,但不是絕對必要的,因爲我可能會將我的wav文件轉換爲mp3或ogg。

一個只能解碼wav文件的解決方案只是一個部分解決方案,但我會盡我所能。 ;-)

這就是我已經看過:

  • 的DirectSound和ALUT都支持WAV解碼,但ALUT已被棄用。
  • ffmpeg幾乎可以解碼任何東西,但它似乎沒有跨平臺的通用穩定版本?
  • 我還沒有嘗試csvorbis,但它是非常古老的,我不知道它目前的狀態是什麼。

我們非常歡迎您嘗試追求我,上述解決方案其中之一實際上是最佳選擇。

謝謝。

回答

0

我和ffmpeg一起工作,到目前爲止我喜歡它。發佈版本中幾乎沒有問題,但它是最有效的。

+0

在多個平臺上重新分配ffmpeg有多容易?具體來說,是否存在與Tao.Ffmpeg或其他某些.​​Net包裝兼容的容易分發的Windows/Mac/Linux二進制文件? – 2009-04-10 19:22:18

+0

應該相當簡單..Tversity將其用於所有轉碼他們的媒體xbox – 2009-04-10 19:31:51

1

您應該能夠使用System.Media.SoundPlayer直接回放.wav文件。不確定這是否有助於您的用例。

4

你沒有提到的那種牌你正在尋找的。 FMOD,我已經有了非常好的結果,這是免費的非商業項目。它播放各種格式,包括ogg和mp3,並且有一個廣泛的API來控制如何播放它們。它是跨平臺的,就像你需要的一樣。

FMOD很大程度上針對遊戲;我不會感到驚訝,如果它已經具有優秀的3D功能(儘管我不確定)。

正如你可以告訴我,我是一個相當迷人的人,這主要是因爲讓一個空白的C#項目第一次播放一個OGG文件是一件非常痛苦的事情。