iTunesLibrary.framework的简单使用

昨天还在说python x Scripting-Bridge 访问iTunes很方便,今天就被Naville告知可以用iTunesLibrary.framework。。。
那两篇post,

P.S,其实一开始让我用iTunesLibrary.framework的时候我是拒绝的,因为你不能让我用,我就马上用,第一我要试一下,因为我不愿意用完了以后再加一些特技上去,iTunes资料库“咣”一下,很全、很方便,这样程序[猿|媛]出来一定会骂我,根本没有这样的资料库,就证明上面那个是假的。后来我也经过证实它确实是好用的,我用了大概一个月左右,感觉还不错,后来我在用的时候也要求他们不要加特技,因为我要让程序[猿|媛]看到,我用完之后是这个样子,你们用完之后也会是这个样子!

要在项目里使用iTunesLibrary.framework,你得先把这个framework添加到build phases的link binary with libraries里。而这个framework并不在Xcode默认的framework列表里,它在/Library目录下。

添加好iTunesLibrary.framework,就可以在文件中import了。以下是一些简单的使用~

    ITLibrary * lib = [[ITLibrary alloc] initWithAPIVersion:@"1.0" error:nil];
    // initWithAPIVersion
    // 这个我也不知道具体该怎么写...找遍了头文件也没发现任何定义
    // 总之我写的是@"1.0", 可以正常使用
    [[lib allMediaItems] enumerateObjectsUsingBlock:^(ITLibMediaItem * obj, NSUInteger idx, BOOL *stop) {
    if ([obj mediaKind] & (ITLibMediaItemMediaKindSong | ITLibMediaItemMediaKindMovie | ITLibMediaItemMediaKindHomeVideo))
    {
        NSLog(@"%@ is performed by %@",[obj title],[[obj artist] name]);
        switch ([[obj artwork] imageDataFormat])
        {
            case ITLibArtworkFormatPNG:
                break;
            case ITLibArtworkFormatBMP:
                break;
            case ITLibArtworkFormatTIFF:
                break;
            default:
                break;
        }
        [[[[obj artwork] image] TIFFRepresentation] writeToFile:@"artwork.tiff" atomically:YES];
    }
}];

突然感觉没什么特别好讲的,ObjC的方法名特别清晰。
唯一要提的就是,在这里获取的都是readonly属性的。所以通过iTunesLibrary.framework来做一个filter类的应用还是很方便,但想更改对应的属性,添加播放列表等等的话,还是要通过Scripting Bridge的。

Leave a Reply

Your email address will not be published. Required fields are marked *

fifteen + 17 =