播放音频时设置自定义元数据(控制中心、锁屏...)

Posted

技术标签:

【中文标题】播放音频时设置自定义元数据(控制中心、锁屏...)【英文标题】:Set custom metadata when audio is playing (Control Centre, Lockscreen...) 【发布时间】:2017-01-19 22:56:38 【问题描述】:

总结

我目前正在尝试为每次播放音频时设置应用范围的默认元数据。目前,控制中心和锁屏上仅显示音频流的 URL。我正在尝试自己的自定义值;但是,我无法让它工作。值得注意的是,音频是通过UIWebView 播放的。

(下图继续)

ViewController.swift

import UIKit
import AVFoundation
import MediaPlayer

class ViewController: UIViewController, UIWebViewDelegate, UIScrollViewDelegate 

    var mPlayer: MPMediaItem!

    override func viewDidLoad() 
        super.viewDidLoad()

        let image = UIImage(named: "Artwork")!
        let artwork = MPMediaItemArtwork.init(boundsSize: image.size, requestHandler:  (size) -> UIImage in
                return image
            )

        let nowPlaying: NSDictionary = [MPMediaItemPropertyTitle: "Song",
                                        MPMediaItemPropertyArtist: "Artist",
                                        MPMediaItemPropertyArtwork: artwork]

        MPNowPlayingInfoCenter.default().nowPlayingInfo = nowPlaying as? [String : Any]
    

【问题讨论】:

【参考方案1】:

你必须用它的初始化器来初始化 MPMediaItemArtwork

let image = UIImage(named: "Artwork")!
let artwork = MPMediaItemArtwork.init(boundsSize: image.size, requestHandler:  (size) -> UIImage in
    return image
)

【讨论】:

谢谢!我编辑了代码以显示您的改进。现在,为什么它仍然显示流式 URL 而不是给定的nowPlayingInfo,有什么理由吗? 没关系!我通过将代码放在applicationDidEnterBackground 函数下使其工作。

以上是关于播放音频时设置自定义元数据(控制中心、锁屏...)的主要内容,如果未能解决你的问题,请参考以下文章