前回: Live Messenger の Version 取得 by Messenger Library
JavaScriptベースのWindows Live Messenger Libraryから、メンバーがLive Messengerにて再生中の曲表示をしていた場合、その値を取得してみましょう。Messenger Libraryは、Web Live Messenger相当の機能なんですが、再生中の曲も取得できるんですねー。
再生中の曲を取得するためだけのプロパティというものはなく、プレゼンスを表すIMAddressPresenceクラスに汎用的なPropertiesプロパティというものがあり、これを使います。これは、PresencePropertyクラスのコレクションになっていて、PresencePropertyはNameとValueのふたつのプロパティを持っています。
もし曲を再生中のメンバーがいたら、そのメンバーのPresencePropertyコレクションの中に「CurrentMedia」という値が、Nameプロパティに設定されたものがあります。Value値を取得すると再生している曲がわかります。コードで示すと次のようになります。
// (presence は IMAddressPresence オブジェクト)
var properties = presence.get_properties().getEnumerator();
while (properties.moveNext()) {
var p = properties.get_current();
if (p.get_name() == 'CurrentMedia') {
// (sb は StringBuilder オブジェクト)
sb.append('Value = ' + p.get_value());
break;
}
}
表示例です。
この文字列を解析してあげる必要はあるわけですね……。この設定されている規則は、Live Messenger 表示メッセージを外部アプリから設定 を参考にしてください!
使用したPresencePropertyクラスのNameとValueプロパティは、読み取り専用になっているので逆にMessenger Libraryから(偽りの)再生中の曲を設定することはできません。残念。