Xamarin.MacでiTunesとSwinsianで再生している曲の情報を取得する2018-05-20Xamarin.MacでiTunesとSwinsianで再生している曲の情報を取得するAppleScriptを使った曲情報の取得のサンプルは探せばゴロゴロ出てきますが、アルバムアートの画像も含めてXamarin.Macから取得する方法が見つからなかったのでメモ。転がってるSwiftを使ったサンプルを参考にどのAPIを叩けば曲情報が取れるのか調べるNSDistributedNotificationCenterを使うとiTunesとSwinsianでの曲再生時にイベントが取れるようです。飛んできた通知の中に曲情報が入っているみたいなのでこれを利用します。Swinsianは公式HPにNSDistributedNotificationCenterで取ってくるべきNSNotificationのNameが書いてあるので、参考にSwiftのコードを書いてみました。}}曲情報が入ったAnyHashableが取れるみたいですね。ちなみにiTunesはNSNotification.Nameの名前をcom.apple.iTunes.playerInfoに変更すればサムネイルのパス以外は取れます。肝心のアルバムアートの取り方が分からないSwinsianに関しては、pngのパスがAnyHashableに入ってるのでそこから取ってきてNSImageに突っ込めば表示できますね。Bridgeを使って取得する必要があります。Bridgeに関してはAppleのドキュメントを読めば大体わかると思いますが、要はWindowsでいうCOMみたいなものです。developer.apple.comありがたいことにiTunes.hの生成の仕方が書いてあるので、書いてあるコマンドを打ってiTunes.hを生成しました。iTunes生成されたiTunes.hを読めば大方どのAPIを叩けばお目当てのアルバムアートが取れるかわかるはずです。いうわけでC#で書けばこんな感じになるはずです。NSImage(raw_image);}というわけでゴリ押しでコードを書くgistb728c424cc574d02a29e841f19d2d534あとがきXamarinとはいえ、こういったmacOS特有の機能を使う場合はまずはAppleのドキュメントを確認しなければなりませんし、大半のサンプルはSwift/ObjCで書かれているのでそれが読めないとかなりつらいです。Gen8のファンの回転数制御の謎C#でもDangerしたかったので、出来るようにした話はてなブログをはじめよう!kazuki09さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。