|
|
ライブラリにある曲から、フィルタを通してユーザの目的に合う曲を如何に選ぶかが重要機能となる。管理アプリやジュークボックスなどで共通な選曲方法である。 ●原理 曲は、常にライブラリのメンバーであるメディアとして識別する必要があるので、必要な曲は絶対アドレスではなく、コレクションのアイテムとして抽出する。基本原理は、PlayList を参照。 ●ポピュラー音楽 ポピュラー音楽では下図のようになる。曲と再生リストで処理が異なる。 ○曲 ライブラリから、ポピュラー音楽に属する全曲をコレクションし、PlayList にする。このPlayList が基準になる。このPlayList から、予め、必要な情報をタグから内部の配列に読み取っておく。歌詞の有無はタグから読むと時間が掛かるので、データベースで生成されたクエリから得る。以降は、このPlayListでのインデックス番号が今後の曲の識別番号となる。 ポピュラー全曲の収集例は以下の通り。二回に分けて収集し、合体させている。 Dim MPL As IWMPPlaylist
最初のフィルタとして、歌手、ジャンル、レイトなどがあり、ユーザが指定したフィルタにて、目的の曲リストを作成する。このリストには、大元のPlayListでのインデックス番号が付随している。これを表示する。 ユーザはそのリストから更に個々の曲を選択する。ユーザが選択した曲は、インデックス番号にて、大元のPlayListでのメディアにアクセスし、選択された曲で新しいPlayListを生成する。 ○再生リスト ライブラリからポピュラーに関する再生リスト一覧をPlayListArrayとして得る。これを表示し、ユーザに選ばせる。 選ばれた再生リストの中身(曲一覧)を表示し、更にユーザに曲を選択させる。この一覧が基準PlayListとなる。 ユーザが選択した曲は、インデックス番号にて、大元のPlayListでのメディアにアクセスし、選択された曲で新しいPlayListを生成する。 ○再生/ファイルアクセス 以上のように、全てライブラリのオブジェクトとして処理を行う。これにより、ファイルの競合なども、内部で処理され、アプリ側には見えない。したがって、再生中の曲のタグ変更も自由に行える。 新しいPlayListをPlayする(currentPlayListプロパティに割り当てる)だけで、それらの曲は自動的に連続再生され、アプリに負担が掛からない。再生中に新しいPlayListを与えると、直ちにそのPlayListに切り替わる。 |