我想使用iTunes.h
从iTunes上的相册中获取所有曲目
现在我通过以下方式获取当前曲目的数据:
NSInteger trackID = iTunes.currentTrack.databaseID;
NSString *name = iTunes.currentTrack.name;
以及:
的专辑名称NSString *trackAlbum = iTunes.currentTrack.album;
但是知道我不知道如何获得与当前曲目相同的专辑中的所有曲目 有任何想法吗?感谢
答案 0 :(得分:1)
iTunes API编写得很糟糕。 您必须使用谓词过滤数组。
NSArray *allSongs = [self allSongs];
NSArray *songsOfAlbum = [allSongs filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"album == %@ && artist == %@", albumString, artistString]];
你可以得到这样的所有歌曲:
// Get all Songs
- (NSArray *)allSongs {
if (_allSongs == nil) {
NSArray *tracksToPlay = [(SBElementArray *)[self.library tracks] get];
// Sort by artist
_allSongs = tracksToPlay;
}
return _allSongs;
}
- (iTunesLibraryPlaylist *)library {
if (_library == nil) {
// Whole Library
iTunesSource *source = [[[[self.iTunes sources] get] filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"kind == %i", iTunesESrcLibrary]] objectAtIndex:0];
// Only the Music
_library = [[[[source playlists] get] filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"specialKind == %i", iTunesESpKMusic]] objectAtIndex:0];
}
return _library;
}
答案 1 :(得分:1)
您可以将iTunes Library Framework(10.9 osx)用于iTunes 11。
#import <iTunesLibrary/ITLibrary.h>
#import <iTunesLibrary/ITLibMediaItem.h>
#import <iTunesLibrary/ITLibAlbum.h>
NSError *error = nil;
ITLibrary *library = [ITLibrary libraryWithAPIVersion:@"1.0" error:&error];
if (library)
{
NSArray *tracks = library.allMediaItems; // <- NSArray of ITLibMediaItem
}
for (ITLibMediaItem *item in tracks) {
NSLog(@"tracks %@",item.album.title);
}
您可以从ITLibMediaItem
获取相册信息答案 2 :(得分:-1)
作为检索我已提交github存储库的艺术作品的示例: 它是一个客观的c代码,使用上面的代码更改:
return $resource(languageFilePath)...