.Net/Mono で wav、mp3、ogg をデコードするにはどうすればよいですか?
質問
wav、mp3、または ogg ファイルをデコードして、必要に応じて DirectSound または OpenAL 経由でデコードされたストリームを再生できる、クロスプラットフォーム (Windows、MacOSX、Linux 上の .Net および Mono) 方法を探しています。
mp3 または ogg のいずれかをデコードできるソリューションで十分です。両方をデコードする必要はありません。それ (または別のソリューション) が wav もデコードできれば理想的ですが、wav ファイルを mp3 または ogg に変換できる可能性があるため、厳密に必要というわけではありません。
wav ファイルのみをデコードできる解決策は部分的な解決策にすぎませんが、入手できるものは採用します。;-)
私がすでに調べたものは次のとおりです。
- DirectSound と Alut はどちらも WAV デコードをサポートしていますが、Alut は非推奨になりました。
- ffmpeg はほぼ何でもデコードしますが、プラットフォーム間で共通の安定したリリースがないようです。
- csvorbis はまだ試したことはありませんが、非常に古いので、現在の状況はわかりません。
上記の解決策の 1 つが実際には最良の選択肢であると私を説得してみても大歓迎です。
ありがとう。
解決
WAV ファイルの簡単なサポートについては、mcs/class/System/System.Media/AudioData.cs の mono の実装を確認できます (http://anonsvn.mono-project.com/viewvc/trunk/mcs/class/System/System.Media/).
ogg オーディオ ファイルをデコードするには、mono の sn サーバーの csvorbis モジュールを確認できます。http://anonsvn.mono-project.com/viewvc/trunk/csvorbis/
他のヒント
あなたが探しているライセンスの種類を言及していません。私は、非商用のために無料で利用できる、 FMOD ので優れた結果を持っていましたプロジェクト。これは、OGGやmp3などのフォーマットの多種多様なを果たしているし、それらを再生する方法を制御するための豊富なAPIを持っています。必要なようですが、クロスプラットフォームです。
FMODは大幅にゲームを対象とし、それはすでに(私は確かに知りませんが)優れた3D機能が付属していた場合、私は驚かないだろう。
あなたは初めてOGGファイルを再生するには空白のC#プロジェクトを取得するには、驚くほど無痛であったため、ほとんどである、私はかなりのファンだ言うことができるようにます。
あなたは直接System.Media.SoundPlayerで.wavファイルを再生することができるはずです。それはあなたのユースケースに役立つかどうかわからない。
私はffmpegのと協力し、これまでのところ、私はそれが好きです。いや、そこリリース間いくつかの問題がありますが、それはすべての中で最も効率的である。
部分的に自分の質問に答えるために、それはあなた自身のWAVローダを書くことは非常に簡単だということが判明しました。私は、wavファイルの形式について説明し、この記事を使用します:
いつものように、FMODは、あなたの答えは... http://www.fmod.org上のすべてのあなたの問題を解決を取得すること自由に感じなさい/index.php/download#FMODExProgrammersAPIする
https://sites.google.com/site/cobnut3d/する
SlimDX.DirectSoundは - C#にコードの一例である
。