gpt4 book ai didi

ios - AVPlayer 播放完歌曲后如何隐藏远程命令中心?

转载 作者:行者123 更新时间:2023-12-01 22:05:57 27 4
gpt4 key购买 nike

我有一个使用 AVPlayer 播放 mp3 的应用程序,当轨道结束时,我很难隐藏远程命令中心。这是设置我的远程命令中心的功能。

如何隐藏它?

函数 setupRemoteCommandCenter() {

    // Get the shared MPRemoteCommandCenter
let commandCenter = MPRemoteCommandCenter.shared()


// Add handler for Play Command
commandCenter.playCommand.addTarget { [unowned self] event in
if self.avPlayer?.rate == 0.0 {
self.togglePlayPause()
return .success
}
return .commandFailed
}

// Add handler for Pause Command
commandCenter.pauseCommand.addTarget { [unowned self] event in
if self.avPlayer?.rate == 1.0 {
self.togglePlayPause()
return .success
}
return .commandFailed
}

let skipForwardCommand = commandCenter.skipForwardCommand
skipForwardCommand.isEnabled = true
skipForwardCommand.addTarget(handler: skipForward)
skipForwardCommand.preferredIntervals = [15]

let skipBackwardCommand = commandCenter.skipBackwardCommand
skipBackwardCommand.isEnabled = true
skipBackwardCommand.addTarget(handler: skipForward)
skipBackwardCommand.preferredIntervals = [15]


commandCenter.changePlaybackPositionCommand.addTarget { [weak self](remoteEvent) -> MPRemoteCommandHandlerStatus in
guard let self = self else {return .commandFailed}
if let player = self.avPlayer {
let playerRate = player.rate
if let event = remoteEvent as? MPChangePlaybackPositionCommandEvent {
player.seek(to: CMTime(seconds: event.positionTime, preferredTimescale: CMTimeScale(1000)), completionHandler: { [weak self](success) in
guard let self = self else {return}
if success {
self.avPlayer?.rate = playerRate
}
})
return .success
}
}
return .commandFailed
}
}

最佳答案

您必须注销远程控制事件并从 MPNowPlayingInfoCenter 中清除您当前的播放信息:

UIApplication.shared.endReceivingRemoteControlEvents()        

MPNowPlayingInfoCenter.default().nowPlayingInfo = [:]

您可以观察 AvPlayerItem 结束于 NotificationCenter 观察者:

NotificationCenter.default.addObserver(self, selector: #selector(playerItemDidPlayToEndTime(_:)), name: .AVPlayerItemDidPlayToEndTime, object: playerItem) 

关于ios - AVPlayer 播放完歌曲后如何隐藏远程命令中心?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59760456/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com