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

上へ
基本事項
media オブジェクト
レイティング管理
プレイリスト

コードによるライブラリ管理

media オブジェクト

最終更新日:2006/08/09 修正

 media とは、ここでは音源となるWMAファイル、その属性、管理情報などをクラス化したものである。WMPのライブラリはこれらの集合体で成り立っている。

●mediaCollection

 mediaCollection は、その時WMPが管理しているライブラリの全てのメディアのコレクションを指す。この部分集合(サブセット)が、playList コレクションである。通常は playList にしてからアクセスする。

○全てを得る

・全メデイア

 Dim pl As IWMPPlaylist = mp.mediaCollection.GetAll

この場合は、全てのメデイアとなるので、動画などがあれば、それらもコレクションされる。

・音源に限定する

Dim pl As IWMPPlaylist = mp.mediaCollection.getByAttribute("MediaType", "Audio")

とすれば、音源メデイアのみとなる。

○選別する

 属性(主としてタグなど)を指定すれば、それらのみとなる。

Dim pl As IWMPPlaylist = mp.mediaCollection.getByAlbum("XXXXXX")
Dim pl As IWMPPlaylist = mp.mediaCollection.getByGene("XXXXXX")

で、アルバムやジャンルで選別できる。より一般的には、

Dim pl As IWMPPlaylist = mp.mediaCollection.getByAttribute("XXXXXX", "YYYYY")

にて、任意のタグ(XXXXXX) が、YYYYYのものを選別できる。

 特定の1個の音源に限定する場合は、

Dim pl As IWMPPlaylist = mp.mediaCollection.getByAttribute("sourceURL", (ファイルフルパス))

が良い。

○メディア登録(追加)

 UIでフォルダを指定すれば、新しい音源を自動的に見つけ登録してくれるが、これをコードで行う方法である。 フォルダはローカルでなくとも良い。つまり、ネットワーク上の共有フォルダでもOKである。

FileCopy(Src, Dst)
mp.mediaCollection.add(Dst)

となる。Dst は、管理しているフォルダを含むファイルフルパスである。FileCopy(FileMove) にて、非管理フォルダから管理フォルダに移しておく。addにて、フルパスを指定すれば、mediaCollection に追加される。

○再生する

 PlayList が確保できれば、それらをまとめて演奏できる。autoStart = True で、 

 mp.currentPlaylist = pl

とすれば良い。WMP にて、pl から順番にmedia を取り出し、再生する。

●media のアクセス

○newMedia

 これは、音源のURLを指定して、新しいmedia を生成するファンクションで、戻り値はmedia となる。

 mp.newMedia("XXXXX") As IWMPMedia

XXXXX は、.wma ファイルへのフルパス。ネットワークパスでも構わない。この処理で、ライブラリ外のファイルをオブジェクト化し、再生などが可能になる。

<注意> ライブラリ外の音源を再生すると、設定によってはライブラリに自動登録される場合がある。ライブラリを安全にするには、再生したmedia を自動登録しないモードに設定しておく。

 

 また、プレイリストから対象のメディアの獲得方法は 2通りある。

○currentMedia

 mp.currentMedia = pl.Item(n)

 とすれば、メディアのインスタンスが設定される。但し、currentMedia は、再生対象のメディアとなる。autoStart であれば、これだけで再生される。

○media

 Dim m As IWMPMedia = pl.Item(n)

とすれば、media オブジェクトが得られる。これは、再生対象ではないので、こちらが良い。

○タグ参照

playList の i 番目のメディアに対して、

pl.Item(i).getItemInfo("Composer")
pl.Item(i).getItemInfo("Album")
pl.Item(i).getItemInfo("WM/TrackNumber")
pl.Item(i).getItemInfo("Title")
pl.Item(i).getItemInfo("Artist")
pl.Item(i).getItemInfo("AlbumArtist")

などとする。

○タグ更新

playList の i 番目のメディアに対して、

pl.Item(i).setItemInfo("Composer","XXXX")
pl.Item(i).setItemInfo("Album","XXXX")
pl.Item(i).setItemInfo("WM/TrackNumber","XXXX")
pl.Item(i).setItemInfo("Title","XXXX")
pl.Item(i).setItemInfo("Artist","XXXX")
pl.Item(i).setItemInfo("AlbumArtist","XXXX")

などとする。