ようやく、前回言っていたライブラリの、暫定ですが公開に漕ぎ着けました。SounDecoderです。libogg、libFLAC、libmpg123などは、クロスプラットフォームとはいえ.NET Frameworkからはそう簡単にアクセスできず、またフォーマット間でデコーダの利用方法に差異がある為、これを解消しよう、という魂胆のものです(こういうの既にあるのかな、ってあるんだったら思いっきり無駄足踏んだ訳ですが)。初期化時以外は(場合によっては初期化も含めて)、SounDecoder.SoundDecoderという抽象クラスがSounDecoderユーザの知るべき唯一のインターフェイスで、内部でどのようにそれぞれのデコーダ(libvorbisfileとかlibFLACとか)が使われているかは知る必要がありません。
現時点で公開できているのは、コアとなるSounDecoder、Ogg VorbisをデコードするヘルパーSounDecoder Helper Ogg Vorbis、Native/Ogg FLACをデコードするSounDecoder Helper FLAC、その他諸々のドキュメントです。MP3を含むMPEG 1.0/2.0/2.5 Audio Layer I/II/IIIをデコードするヘルパーSounDecoder Helper MPEG Audioは、既にできあがってはいますがそのプロジェクトが入ったディレクトリをミラーしてくるのを忘れて(今は帰省中です)、帰るまで手に入りません。また、すぐに音を再生できるようにする為のインターフェイス、SounDecoder.Sounds.Soundは、インターフェイスは作りましたがまだ実装がありません(近日中にDirectSoundのものを公開予定)。プログラム例は、まだ書き足りませんが公開予定日を大幅に回っている為、今回の所は三つまでです。
これ以上ずるずる引き延ばすとまた大変な事になりそうなのでとりあえずできている所までを公開しましたが、実際の所これだけではまだ使い易くありませんね......少なくともSounDecoder Soundsの実装を一つは作らないと。
それにしても、自分用のプログラムって、気楽だ。
コメントする