そうそう、昨日の研究結果について、書くのを忘れていました。WMPのコンポーネント呼び出しのことです。あのあと全世界のページをあさってみましたが、やっぱりそんなには使われていないみたい。検索結果が1ページで終わってしまいました。
昨日悩んでいたduration(String)等のプロパティを取得するには、currentMediaプロパティおよび、controlプロパティの中のものを使用すればよいようです。こちらでは、状態に関係なく(何も曲をセットしていない状態ではnullになってます)、常に情報を得ることが出来ます。ただし、停止中にcontrol.currentPositionStringなどを見ても、何も書いていないようですが。
それと、面白いことに(?)、currentMedia.getItemInfoで、MP3等のタグを取得できるのは参考サイトにあったとおりですが、MIDIファイルを開いても、getItemInfoで取得できるものがあるようです。attributeCountを使ってforループなどを作ってみるといいと思いますが、ファイルタイプや再生回数などが表示されていました。MIDIメタイベントからタイトルなどは、残念ながら取得してくれません。WMP自体にそういうプラグインが入っていれば、話は変わるのでしょうが…。とりあえず、getItemInfoで得られるタグ情報によって、再生中メディアを判別するのは無理そうですね。
あとは、positionChangeイベントが、どうやら発生しないのではないかと言うくらい。参考サイトではいきなりタイマーを使ってるので不思議でしたが、どうもタイマーで再生時間を取得しないとダメみたいです。
それくらいでしょうか?あとは、URLからファイルを再生する場合への対応はまだしていませんし。今後も、調べながらやっていこうと思います。ぼちぼち ですが。