ホーム ] 筆者の音楽ライフ変遷 ] gigabeat 60V ] WMP概要 ] 全体システム ] 評価/再生リスト ] メデイア情報の設定 ] コードによるライブラリ管理 ] ライブラリによるアプリケーション ] 音楽データベース ]

上へ
ライブラリによる選曲
新ポピュラー音楽管理
新ポピュラープレーヤ
新クラシック音楽管理
新クラシックプレーヤ
ネットワーク型プレーヤ

ライブラリによるアプリケーション

ライブラリによる選曲

最終更新日:2006/07/26  新規

 ライブラリにある曲から、フィルタを通してユーザの目的に合う曲を如何に選ぶかが重要機能となる。管理アプリやジュークボックスなどで共通な選曲方法である。

●原理

 曲は、常にライブラリのメンバーであるメディアとして識別する必要があるので、必要な曲は絶対アドレスではなく、コレクションのアイテムとして抽出する。基本原理は、PlayList を参照。

●ポピュラー音楽

 ポピュラー音楽では下図のようになる。曲と再生リストで処理が異なる。

○曲

 ライブラリから、ポピュラー音楽に属する全曲をコレクションし、PlayList にする。このPlayList が基準になる。このPlayList から、予め、必要な情報をタグから内部の配列に読み取っておく。歌詞の有無はタグから読むと時間が掛かるので、データベースで生成されたクエリから得る。以降は、このPlayListでのインデックス番号が今後の曲の識別番号となる。

 ポピュラー全曲の収集例は以下の通り。二回に分けて収集し、合体させている。

        Dim MPL As IWMPPlaylist

MPL = wmp.mediaCollection.getByAttribute("WM/Category", "Japan Popular")
Dim pl As IWMPPlaylist = wmp.mediaCollection.getByAttribute("WM/Category", "World Popular")
Cnt = pl.count
For i = 0 To Cnt - 1
   MPL.appendItem(pl.Item(i))
Next
MCnt = MPL.count

MPLにポピュラー全曲が収集された。この場合、曲の並びは、アルバム、トラック番号順となっている。

 最初のフィルタとして、歌手、ジャンル、レイトなどがあり、ユーザが指定したフィルタにて、目的の曲リストを作成する。このリストには、大元のPlayListでのインデックス番号が付随している。これを表示する。

 ユーザはそのリストから更に個々の曲を選択する。ユーザが選択した曲は、インデックス番号にて、大元のPlayListでのメディアにアクセスし、選択された曲で新しいPlayListを生成する。

○再生リスト

 ライブラリからポピュラーに関する再生リスト一覧をPlayListArrayとして得る。これを表示し、ユーザに選ばせる。

 選ばれた再生リストの中身(曲一覧)を表示し、更にユーザに曲を選択させる。この一覧が基準PlayListとなる。

 ユーザが選択した曲は、インデックス番号にて、大元のPlayListでのメディアにアクセスし、選択された曲で新しいPlayListを生成する。

○再生/ファイルアクセス

 以上のように、全てライブラリのオブジェクトとして処理を行う。これにより、ファイルの競合なども、内部で処理され、アプリ側には見えない。したがって、再生中の曲のタグ変更も自由に行える。

 新しいPlayListをPlayする(currentPlayListプロパティに割り当てる)だけで、それらの曲は自動的に連続再生され、アプリに負担が掛からない。再生中に新しいPlayListを与えると、直ちにそのPlayListに切り替わる。