mpmediapickercontroller - 如何获取 MPMediaPlaylist 的用户定义封面图片和描述?

标签 mpmediapickercontroller mpmediaquery mpmedialibrary

我知道如何通过以下方式获得 MPMediaQuery 的标题:

MPMediaQuery *playlistsQuery = [MPMediaQuery playlistsQuery];

NSArray *items = [playlistsQuery collections];

MPMediaPlaylist *myPlaylist = items.firstObject;

NSLog(@"%@",myPlaylist.name); //"New playlist title"

有谁知道如何访问 MPMediaPlaylist 的封面和描述?

Screenshot - User created Playlist

最佳答案

获取描述很容易,只需使用

var descriptionText: String? { get }

来自 MPMediaPlaylist
要获取用户定义的图像,您必须使用私有(private) API,这是一个扩展,您可以使用它来获取存储在磁盘上的图像,或获取图像的 URL :
extension MPMediaPlaylist {
    /**
     User selected image for playlist stored on disk.
     */
    var userImage: UIImage? {
        guard let catalog = value(forKey: "artworkCatalog") as? NSObject else {
            return nil
        }

        let sel = NSSelectorFromString("bestImageFromDisk")

        guard catalog.responds(to: sel),
            let value = catalog.perform(sel)?.takeUnretainedValue(),
            let image = value as? UIImage else {
            return nil
        }
        return image
    }

    /**
     URL for playlist's image.
     */
    var imageUrl: URL? {
        if let catalog = value(forKey: "artworkCatalog") as? NSObject,
            let token = catalog.value(forKey: "token") as? NSObject,
            let url = token.value(forKey: "availableArtworkToken") as? String {
            return URL(string: "https://is2-ssl.mzstatic.com/image/thumb/\(url)/260x260cc.jpg")
        }
        return nil
    }
}

与往常一样,请记住,当 Apple 在后台更改内容或您的应用程序可能被 App Store 拒绝时,它可能随时停止工作。

关于mpmediapickercontroller - 如何获取 MPMediaPlaylist 的用户定义封面图片和描述?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34132956/

相关文章:

ios - 如何从 MPMediaItemCollection 获取艺术品

ios - 如何更改 MPMediaPickerController 的语言设置。

iOS [[MPMediaQuery playlistsQuery] collections] 在第一次运行时返回 "Playback History"

iphone - 跨 session 持久保存 iPod 播放列表 (MPMediaItemCollection) 的最佳实践

ios - 使用 MPMediaQuery 加载播放列表

html - 消除 CSS 中隐藏 html 的空白区域

ios - 如何等待 MPMediaLibrary 请求授权响应

ios - MPMediaLibrary.requestAuthorization 在 Xcode 10.2 模拟器上没有响应

objective-c - 通过 MPMediaPickerController 选择音频

ios - 在没有 MPMediaPickerController 的情况下访问用户 iTunes 库