11
A
回答
21
使用MPMediaQuery:
MPMediaQuery *allAlbumsQuery = [MPMediaQuery albumsQuery];
NSArray *allAlbumsArray = [allAlbumsQuery collections];
的allItems阵列确实现在包含MPMediaItemCollections,分组按专辑完成。现在你可以遍历数组了。
for (MPMediaItemCollection *collection in allAlbumsArray) {
MPMediaItem *item = [collection representativeItem];
}
4
感谢您的回答,打印出的专辑和艺术家的情况下,有人在这里工作的示例代码需要它:
NSMutableString *outText = [[NSMutableString alloc] initWithString:@"Albums:"];
[outText appendFormat:@"\r\n count:%i",[[[MPMediaQuery albumsQuery] collections] count]];
for (MPMediaItemCollection *collection in [[MPMediaQuery albumsQuery] collections]) {
[outText appendFormat:@"\r\n -%@",[[collection representativeItem] valueForProperty:MPMediaItemPropertyAlbumTitle]];
}
[outText appendString:@"\r\n\r\n Artist:"];
for (MPMediaItemCollection *collection in [[MPMediaQuery artistsQuery] collections]) {
[outText appendFormat:@"\r\n -%@",[[collection representativeItem] valueForProperty:MPMediaItemPropertyArtist]];
}
NSLog(@"%@",[outText autorelease]);
0
在这里你去。你可以得到专辑和他们的歌曲。
/// Get all albums and their songs
///
func getAllAlbums() {
let query: MPMediaQuery = MPMediaQuery.albums()
let allAlbums = query.collections
allAlbumItems?.removeAll()
guard allAlbums != nil else {
return
}
for collection in allAlbums! {
let item: MPMediaItem? = collection.representativeItem
let albumName = item?.value(forKey: MPMediaItemPropertyAlbumTitle) as? String ?? "<Unknown>"
let albumId = item!.value(forProperty: MPMediaItemPropertyAlbumPersistentID) as! NSNumber
let artistName = item?.value(forKey: MPMediaItemPropertyArtist) as? String ?? "<Unknown>"
let album = Album()
album.name = albumName
album.artistName = artistName
album.albumId = String(describing: albumId)
print("Album name: \(albumName)")
// Get all songs in this album
let mediaQuery = MPMediaQuery.songs()
let predicate = MPMediaPropertyPredicate.init(value: albumId, forProperty: MPMediaItemPropertyAlbumPersistentID)
mediaQuery.addFilterPredicate(predicate)
let song = mediaQuery.items
if let allSongs = song {
var index = 0
for item in allSongs {
let pathURL: URL? = item.value(forProperty: MPMediaItemPropertyAssetURL) as? URL
if pathURL == nil {
print("@Warning!!! Track : \(item) is not playable.")
} else {
let trackInfo = SongItem()
trackInfo.index = index
trackInfo.mediaItem = item
let title = item.value(forProperty: MPMediaItemPropertyTitle) as? String ?? "<Unknown>"
let artistName = item.value(forProperty: MPMediaItemPropertyArtist) as? String ?? "<Unknown>"
trackInfo.songName = title
trackInfo.artistName = artistName
trackInfo.isSelected = false
trackInfo.songURL = item.value(forProperty: MPMediaItemPropertyAssetURL) as? URL
album.songs?.append(trackInfo)
index += 1
}
}
}
// Finally add the album object to albums array
allAlbumItems?.append(album)
}
print("Total Album count: \(allAlbumItems?.count)")
}
相关问题
- 1. 获取一位艺术家的所有专辑
- 2. Android:MediaStore缺少艺术家和专辑
- 3. MPMedia按艺术家加载专辑
- 4. 使用eyed3设置“专辑艺术家”?
- 5. 从MP3获取专辑艺术PHP
- 6. 如何查询给定的艺术家的所有专辑
- 7. 如何获取iOS中的音乐的艺术家,专辑等
- 8. 获取当前歌曲的艺术家和专辑foobar2000
- 9. SPAlbumBrowse - 获取艺术家专辑的准确名单
- 10. 如何获取标签mp3 java艺术家专辑年
- 11. 从MediaStore获取艺术家艺术
- 12. Android专辑艺术
- 13. 使用Gracenote获取有关音乐艺术家,专辑和曲目的信息
- 14. 如何获得每位艺术家的最高评分专辑?
- 15. Ruby-mp3info专辑艺术品
- 16. ChromeCast SDK专辑艺术
- 17. MPMoviePlayer音频专辑艺术
- 18. 专辑艺术品从MP3
- 19. freedb.org - 如何查询艺术家/专辑没有光盘ID
- 20. 如何获取音频文件信息(专辑,艺术家,图像,...)Android?
- 21. 如何从Spotify Web API获取艺术家的前5个专辑?
- 22. 获取图上绘制的所有对象(艺术家)
- 23. 如何获取用户的所有艺术家(Spotify Api 1.x)?
- 24. 获取UWP音乐文件艺术家艺术/缩略图
- 25. 选择艺术家专辑列表并显示每个专辑中已经请求了艺术家和专辑的列表中的曲目数量
- 26. Matplotlib:删除所有艺术家和线
- 27. 为所有艺术家查询https://musicbrainz.org
- 28. Spotify API在浏览艺术家时返回太多专辑
- 29. 删除“专辑艺术家”ID3标签与bash?
- 30. 使用Spotify API查找专辑的艺术家