MPNowPlayingInfoCenter和Avplayercontroller在锁定屏幕上显示错误信息

时间:2019-03-24 16:54:53

标签: ios swift avplayerviewcontroller avkit mpnowplayinginfocenter

使用avplayercontroller播放视频文件时,我遇到有关设备锁定屏幕信息中心中显示的信息的问题。

我已遵循有关如何实现MPNowPlayingInfoCenter并更新其内容的指南,但似乎avplayercontroller会覆盖我要显示的所有信息。

我总是以锁屏信息中心结尾,该信息中心显示我的应用程序的徽标,设备的名称,我的应用程序的名称,播放/暂停按钮和时间滑块。

我试图通过avplayercontroller禁用信息中心的更新。在执行此操作时,似乎信息中心已完全禁用,并且不再显示。

这是我设置信息中心信息的方式:

func setNowPlayingInfo()
{
    var nowPlayingInfo = [String: Any]()

    // prepare title and subtitle
    nowPlayingInfo[MPMediaItemPropertyTitle] = "Movie Title"
    nowPlayingInfo[MPMediaItemPropertyArtist] = "Actor Name"

    // asynchronously download movie art image.
    // here, for simplicity, an image from asset catalog is loaded
    if let movieArt = UIImage(named: "cover-art") {
        nowPlayingInfo[MPMediaItemPropertyArtwork] = MPMediaItemArtwork(boundsSize: movieArt.size, requestHandler: { imageSize in
            return movieArt
        })
    }
    nowPlayingInfo[MPNowPlayingInfoPropertyIsLiveStream] = true
    nowPlayingInfo[MPMediaItemPropertyPlaybackDuration] = playerItems[0].asset.duration.seconds
    nowPlayingInfo[MPNowPlayingInfoPropertyPlaybackRate] = player.rate
    nowPlayingInfo[MPNowPlayingInfoPropertyElapsedPlaybackTime] = playerItems[0].currentTime().seconds
    MPNowPlayingInfoCenter.default().nowPlayingInfo = nowPlayingInfo
}

这就是我试图阻止avplayercontroller覆盖信息的原因:

avplayerViewController.updatesNowPlayingInfoCenter = false

我似乎无法找到一种方法来更改avplayercontroller在锁定屏幕信息中心中设置的信息,或者如果在avplayercontroller上将其设置为false的情况下进行更新,则该如何一起显示信息中心。

我愿意接受任何建议。我真的不明白,如果我禁止从avplayercontroller更新信息中心,为什么信息中心不会出现。

在此先感谢您提供一些提示,以解决此问题。

0 个答案:

没有答案