iOS - 重置指挥中心远程播放器

问题描述 投票:1回答:1

我在我的应用程序中使用不同类型的播放器。我对所有的播放器都有某种控制,但其中有一个播放器我完全没有控制。

具体来说,当我从UIWebView中播放一个嵌入式视频时。

我的问题是,应用程序要求在后台播放音频,这工作正常。注意,视频的音频不需要在后台播放。但这意味着我需要使用远程控制(命令中心&锁屏命令)。

我的问题是以下几点。

当我播放了一个嵌入的视频后,遥控器仍然可以控制该视频,即使它已经被删除了。当我按 "播放 "键时,它同时播放我的收音机和嵌入的视频。

我如何才能 "清除记忆 "的命令中心?

我有足够的信息来知道何时应用解决方案,我不知道解决方案是什么,虽然。

解决方案可以包括在播放嵌入的视频时完全不能使用指挥中心,或者直到我的收音机被播放。解决方案可以包括对指挥中心进行某种 "硬复位"。

其实,任何解决方案都是欢迎的。

ios audio video uiwebview avplayer
1个回答
0
投票

这个问题有点老了,但我刚刚解决了这个问题,感觉这可以帮助别人。阻止我重置命令中心的原因是我添加了目标动作,这些动作在我的视图控制器的生命周期中持久存在。

下面是我的代码是这样的。

在视图控制器上。

var commandPlay: Any?
var commandPause: Any?

当添加目标时,

commandPlay = commandCenter.playCommand.addTarget {event in
        self.startButtonTapped(self.startButton)
        MPNowPlayingInfoCenter.default().nowPlayingInfo?[MPNowPlayingInfoPropertyPlaybackRate] = 1.0
        return .success
    }

commandPause = commandCenter.pauseCommand.addTarget {event in
        self.startButtonTapped(self.startButton)
        MPNowPlayingInfoCenter.default().nowPlayingInfo?[MPNowPlayingInfoPropertyPlaybackRate] = 0.0
        return .success
    }

在解雇时删除目标(重要部分):

commandCenter.playCommand.removeTarget(commandPlay)
commandCenter.pauseCommand.removeTarget(commandPause)
© www.soinside.com 2019 - 2024. All rights reserved.