7

我想使用 Scripting Bridge 将电影添加到 iTunes。最好让我在“音乐视频”和“电影”之间进行选择。我知道 Objective-C 和 AppleScript,所以我认为它不会那么难,但我想不通。我知道我将如何使用 NSAppleScript,但我的目标是 10.5 或更高版本,并阅读了 Scripting Bridge 废弃了 NSAppleScript。那正确吗?

我得到的只是

iTunesApplication *iTunes = [SBApplication applicationWithBundleIdentifier: @"com.apple.iTunes"];

正如你所看到的,一点也不多。

4

3 回答 3

10

Step 1. 生成iTunes.h头文件:

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

步骤 2. 添加媒体文件的代码如下所示:

NSString* sourceMediaFile = ...;
iTunesApplication *iTunes = [SBApplication applicationWithBundleIdentifier:@"com.apple.iTunes"];
iTunesTrack * track = [iTunes add:[NSArray arrayWithObject:[NSURL fileURLWithPath:sourceMediaFile]] to:nil];
NSLog(@"Added %@ to track: %@",sourceMediaFile,track);
于 2010-06-30T06:58:59.280 回答
1

您应该使用“脚本定义处理器”( ) 程序从 iTunes 的脚本定义 ( ) 文件(您可以使用该程序获得)sdp生成头文件:.sdefsdef

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

这将为您提供一个名为iTunes.h. 然后将该标题包含到您的项目中并通读它以查看 iTunes 脚本桥接口提供的内容。

如果您似乎无法使用脚本桥执行此操作(有可能——并非所有可以通过应用程序的 AppleScript 界面完成的事情也可以通过脚本桥完成),请继续编写 AppleScript改为执行此操作,然后在您的程序中使用NSAppleScript.

于 2010-05-11T23:16:44.200 回答
0

For the second parameter, it takes a playlist object (or nil as previously mentioned). Once you have fetched an instance of a iTunesPlaylist* object through some means (there are several depending on your needs), you can pass it as the second parameter.

于 2010-07-17T02:35:12.813 回答