Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
12
Help us understand the problem. What is going on with this article?
@Saqoosha

Unity から iTunes のステータスを知るほうほう

More than 5 years have passed since last update.

iTunes 内部の情報

Cocoa で iTunes のステータス(現在再生中の曲名とか時間とか)を得るには Scripting Bridge をつかう。

Using Scripting Bridge
https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ScriptingBridgeConcepts/UsingScriptingBridge/UsingScriptingBridge.html

ターミナルで

sdef /Applications/iTunes.app | sdp -fh --basename iTunes

ってやると iTunes.h っていうヘッダーファイルができあがる。import してごにょごにょ。

再生時間を得るには
#import "iTunes.h"
iTunesApplication *iTunes = [SBApplication applicationWithBundleIdentifier:@"com.apple.iTunes"];
double position = iTunes.playerPosition;

ちょーかんたん。

iTunes.currentTrack.artist ってやればアーティストとれる。ほかにもいっぱいとれる情報ある。iTunes.h みるよろし。

iTunes の動作イベント

再生開始したとか停止したとかのイベントを外から知るには、てきとうにとんでる Notification をつかまえればよい。

見えない通知を捕まえて通知駆動アプリケーションを作る - ザリガニが見ていた...。
http://d.hatena.ne.jp/zariganitosh/20120918/notification_driven_applescript

- (void)setup
{
  [[NSDistributedNotificationCenter defaultCenter] addObserver:self
                                                      selector:@selector(updateTrackInfoFromITunes:)
                                                          name:@"com.apple.iTunes.playerInfo"
                                                        object:nil];
}

- (void)updateTrackInfoFromITunes:(NSNotification *)notification
{
  NSLog(@"%@", notification.userInfo);
}

再生開始・停止のタイミングで通知とんでくる。userInfo にいろいろ情報はいってる。

Plugin にする

Example の Simplest Plugin を参考に↑のいろいろをまとめる。ARC が使えないのでメモリ管理ちゃんとやらないとすぐに Unity 落ちる。。。

ソースコード

こちら。
https://github.com/Saqoosha/UnityiTunes

12
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
12
Help us understand the problem. What is going on with this article?