2017-03-29 48 views
0

這是文檔說從圖書館獲取所有媒體項目的方式,但是我只想獲得歌曲。如何從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

回答

1

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];