gpt4 book ai didi

objective-c - 如何使用 iTunes.h/Scripting Bridge 获取专辑中的所有轨道

转载 作者:行者123 更新时间:2023-12-03 17:13:29 25 4
gpt4 key购买 nike

我想使用 iTunes.h 获取 iTunes 上专辑中的所有轨道。
现在我通过以下方式获取当前轨道的数据:

NSInteger trackID = iTunes.currentTrack.databaseID;
NSString *name = iTunes.currentTrack.name;

专辑名称:

NSString *trackAlbum = iTunes.currentTrack.album;

但是我不知道如何获取与当前轨道相同的专辑中的所有轨道。
有任何想法吗?谢谢

最佳答案

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

关于objective-c - 如何使用 iTunes.h/Scripting Bridge 获取专辑中的所有轨道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14076113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com