CD情報取得(AppleScriptとCocoa)
いろんな要素がからんでいるんですが、CocoaからAppleScriptを呼びだして、iTunesを利用することにより、CDドライブに挿入されている音楽CDの情報(CDDB情報)を抜き出します。
まず、単体で動くAppleScriptはこんな感じ。
tell application "iTunes" set aCD to first source whose kind is audio CD set aPlaylist to playlist 1 of aCD set str to name of aPlaylist & " | " & artist of aPlaylist return str end tell
これを実行すれば、結果として、アルバムタイトルと、アーティストを取得することができるでしょう。
で、次に行うのは、それをCocoaから呼び出して、結果を取得します。
1: NSAppleScript* as = [[NSAppleScript alloc] initWithSource:script]; 2: NSAppleEventDescriptor* desc = [as executeAndReturnError:&dic]; 3: NSString* result = [desc stringValue];
- AppleScriptの文字列を指定してNSAppleScriptのインスタンスを生成
- AppleScriptを実行し、返り値をNSAppleEventDescriptorで取得
- NSAppleEventDescriptorをNSStringに変換
これで、AppleScriptの実行結果をNSStringの文字列resultとして受け取ることができました。あとは、Script側で返り値のフォーマットを工夫すれば、文字列をNSArrayにしたり、PropertyListの形式にしたりすることができるかと思います。