如何使用 itlibrary.h 仅从 iTunes 库中获取歌曲
How to get only songs from itunes library with itlibrary.h
这是文档所说的从库中获取所有媒体项目的方式,但我只想获取歌曲。
#import <iTunesLibrary/ITLibrary.h>
ITLibrary *library = [ITLibrary libraryWithAPIVersion:@"1.0" error:&error];
if (library)
{
tracks = library.allMediaItems; // <- NSArray of ITLibMediaItem
}
我找到了这个答案:How to get all tracks from an album using iTunes.h/Scripting Bridge
我不确定如何调整它来完成我需要它做的事情,或者它现在不那么复杂了?
tracks = library.allMediaItems;
是 NSArray
个 ITLibMediaItem
个对象。
根据文档,作为 属性 mediaKind
赋予它的项目是一首歌曲 (ITLibMediaItemMediaKindSong
) 或另一种媒体。
所以,你只需要使用谓词:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"mediaKind == %d", ITLibMediaItemMediaKindSong]]
因此要过滤(使用前面的谓词)
tracks = [library.allMediaItems filteredArrayUsingPredicate:predicate];
这是文档所说的从库中获取所有媒体项目的方式,但我只想获取歌曲。
#import <iTunesLibrary/ITLibrary.h>
ITLibrary *library = [ITLibrary libraryWithAPIVersion:@"1.0" error:&error];
if (library)
{
tracks = library.allMediaItems; // <- NSArray of ITLibMediaItem
}
我找到了这个答案:How to get all tracks from an album using iTunes.h/Scripting Bridge
我不确定如何调整它来完成我需要它做的事情,或者它现在不那么复杂了?
tracks = library.allMediaItems;
是 NSArray
个 ITLibMediaItem
个对象。
根据文档,作为 属性 mediaKind
赋予它的项目是一首歌曲 (ITLibMediaItemMediaKindSong
) 或另一种媒体。
所以,你只需要使用谓词:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"mediaKind == %d", ITLibMediaItemMediaKindSong]]
因此要过滤(使用前面的谓词)
tracks = [library.allMediaItems filteredArrayUsingPredicate:predicate];