使用Scripting Bridge将电影添加到iTunes

时间:2010-05-11 18:13:25

标签: objective-c itunes scripting-bridge

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

我得到的只是

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

正如你所看到的那样,根本没有多少。

3 个答案:

答案 0 :(得分:10)

步骤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);

答案 1 :(得分:1)

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

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

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

如果您似乎无法使用脚本桥进行此操作(可能 - 通过应用程序的AppleScript界面​​可以通过脚本桥完成所有操作),请继续编写AppleScript来代替它,然后使用NSAppleScript在程序中执行该操作。

答案 2 :(得分:0)

对于第二个参数,它采用播放列表对象(或前面提到的nil)。通过某种方式获取iTunesPlaylist *对象的实例后(根据您的需要有几个),您可以将其作为第二个参数传递。