我想使用Scripting Bridge将电影添加到iTunes。最好让我在“音乐视频”和“电影”之间进行选择。我知道Objective-C和AppleScript,所以我认为它不会那么难,但我无法弄明白。我知道如何使用NSAppleScript,但是我的目标是10.5或更高版本并且读取Scripting Bridge废弃了NSAppleScript。是吗?
我得到的只是
iTunesApplication *iTunes = [SBApplication applicationWithBundleIdentifier: @"com.apple.iTunes"];
正如你所看到的那样,根本没有多少。
答案 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 *对象的实例后(根据您的需要有几个),您可以将其作为第二个参数传递。