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

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 函数下使其工作。

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

iOS音频的后台播放总结(后台网络请求歌曲,Remote控制,锁屏封面,各种打断)

从通知控制中心同时播放多个音频

锁屏界面音频控制

是否可以将自定义元数据标签添加到音乐文件?

react JS中的自定义音频播放器-音量控制

克服锁屏+静音模式播放音频