iOS - 重置命令中心/远程播放器

时间:2016-08-11 12:10:33

标签: ios audio video uiwebview avplayer

我在我的应用中使用不同类型的播放器。我对所有这些都有一些控制权,但其中一个我根本没有。

当我从UIWebView播放嵌入视频时,特别是。

我的问题是,该应用需要在后台播放音频,效果很好。请注意,视频的音频不需要在后台播放。但这意味着我需要使用遥控器(命令中心和锁屏命令)。

我的问题如下:

在我从嵌入式播放视频后,遥控器仍可控制该视频,即使它已被解除。当我按“播放”时,它会播放我的收音机和嵌入式视频。

如何“清除指挥中心的记忆”?

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

解决方案可能包括在播放嵌入视频时使用命令中心的完全残疾,或直到播放我的收音机。解决方案可以包括命令中心的某种“硬重置”。

实际上,任何解决方案都是受欢迎的。

1 个答案:

答案 0 :(得分: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)