スポンサーサイト

--年--月--日
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

XNA:ただいまPLAY TEST中

2009年07月25日
先日の「0曲問題」から引き続き、「PCと360が不通になった時の問題」から、色々と解決策を考えています。
色々と考えた結果、360とPCがLANで繋がっていても、360内の音楽リストだけを選択する方法を見つけました。
MediaSourceクラスにGetAvailableMediaSourcesというメソッドがあります。
このメソッドは、使用可能なメディアソース(360HDDや、PCなどのデバイス)の情報を取得します。
取得した情報は、ICollection型の変数に格納する事になります。
この変数の中に、取得出来たメディアソース情報を格納します。360とPCが繋がっている場合は、リストに2つの情報が入ります「LocalDevice」と「PCのネームハンドル」といった具合です。

このリストをforeach文で一つづつ取得し、MediaSourceTypeの値がMediaSourceType.LocalDeviceの場合、そのメディアソースを引数として、MediaLibraryクラスのインスタンスを生成します。
ローカルデバイスの情報さえ取得できれば、他のデバイス情報は不要なので、即刻breakしてforeach文から抜けます。

これで、360HDDだけのメディアライブラリを取得できました。
あとは今までどおり、メディアライブラリに登録されている曲数を調べて、0曲なら何も再生しない、複数の曲がある場合は、ランダムで0~登録局数-1の間で再生する曲を選択します。
その後は選択された値の曲をPlayすれば目的を達成できるはずです。
一応テストプログラムを作ってテスト中です。
今の所、期待通りの動きをしています。この様子だとうまく事が運べそうです。

ちなみに、GetAvailableMediaSourcesを実行する際に、音楽データ(MP3)をUSBメモリーに入れて360に挿した状態でテストをしてみたのですが、USBメモリーはメディアデバイスとしては認識されませんでした。

最悪の場合、音楽再生機能はオミットしようと思っていたのですが、この分だと最良の形で音楽再生機能が再実装できそうです。


スポンサーサイト
Comment

管理者のみに表示

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。