如何从itunes库中获取只有歌曲的歌曲itlibrary.h

问题描述:

这是文档说从图书馆获取所有媒体项目的方式,但是我只想获得歌曲。如何从itunes库中获取只有歌曲的歌曲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

我不知道如何去适应它做什么,我需要它,也许它现在不那么复杂?

+0

看来你还是需要用'NSPredicate'筛选,寻找for'tracks = [library.allMediaItems filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@“mediaKind ==%d”,ITLib Media Item Media Kind Song]];' – Larme

+0

非常感谢。我想它可能是一样的,但我不知道这些新的名字。如果你让它成为答案,我会接受它 – Neal

+0

我刚刚阅读了'ITLibMediaItem'(https://developer.apple.com/reference/ituneslibrary/itlibmediaitem?language=objc)的文档,并且知道如何使用/构建' NSPredicate'。没有什么复杂的。 – Larme

tracks = library.allMediaItems;ITLibMediaItem对象的NSArray对象。

根据文档,它作为属性mediaKind,它给它的项目是歌曲(ITLib​Media​Item​Media​Kind​Song)或另一种媒体。

所以,你只需要使用断言:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"mediaKind == %d", ITLib​Media​Item​Media​Kind​Song]] 

所以过滤(与以前的谓语)

tracks = [library.allMediaItems filteredArrayUsingPredicate:predicate];