2017-03-29 2 views
0

これは、ドキュメントがライブラリからすべてのメディアアイテムを取得する方法ですが、曲のみを取得したいと考えています。itlibrary.hでiTunesライブラリから曲のみを取得する方法

#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'でフィルタリングする必要があると思われます'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;は、の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]; 
関連する問題