WP7でOgg Vorbisを再生
id:atsushieno:20090325:p1 のOggMediaStreamSourceをWP7に対応させたものを作りました:
https://github.com/mono/mooncodecs
(csvorbis/moonvorbis.sln を開くとWP7用のライブラリプロジェクトとサンプルが入っているはずです。WP7以外のプロジェクトはmoonlight用で今回ノータッチなのでVSでは開けないかも。)
webからURLをもとにogg vorbisファイルをダウンロードして再生するだけのサンプルアプリケーションもXapDeployするだけで試せるように置いてあります:
http://dl.dropbox.com/u/493047/2011/09/Wp7VorbisTest.xap
この辺のAPIはSilverlightとWP7で共通なので、実のところほとんど修正は加えられていません。
昨日貸してもらった実機で動かしてみたので、再生できることまでは確認してあります。
id:atsushieno:20110512:p1 のmonodroidベースのAudioTrackの時は間にいろいろ無駄があったせいか、パフォーマンス的に難があったのですが、今回の実装は少なくとも何秒か聞いてみた限りではモタることもなく再生できていました。
MediaStreamSourceはMediaElement向けのクラスなので、XNAのSoundEffectなどに使うには別の実装が必要になりますが、いずれにしてもcsogg/csvorbisがそのまま動くので、難しくはないと思います。