【问题标题】:How to detect when RPSystemBroadcastPickerView is dismissed?如何检测 RPSystemBroadcastPickerView 何时被解除?
【发布时间】:2018-12-11 10:51:11
【问题描述】:

在应用程序中,我使用RPSystemBroadcastPickerView 开始系统范围的屏幕录制。我需要对用户开始屏幕记录或关闭显示的选择器视图做出反应。在这两种情况下,系统视图都会被关闭。

我假设关闭系统选择器视图将在当前显示的视图控制器上触发 viewDidAppear 事件。这不会发生。我尝试测试AppDelegate 是否触发applicationDidBecomeActiveapplicationWillEnterForeground - 再次失败(这是在用户打开控制中心时触发的)。

有没有人建议尝试一下?

【问题讨论】:

  • 你找到解决办法了吗?
  • @McDonal_11 目前还没有
  • 我们如何添加手动按钮来停止记录?你能帮帮我吗?
  • @McDonal_11 RPSystemBroadcastPickerView 将显示一个弹出窗口来阻止它,再次点击时..
  • 是的。但是,如果没有弹出窗口或没有按下顶部的红色条,只需通过按钮操作即可停止记录??

标签: ios swift replaykit rpsystembroadcastpickerview


【解决方案1】:

您可以使用TimerUserDefaults 间接实现它。

从主应用程序在 ViewController 中启动 Timer 并检查来自 Broadcast Extension 的相应值更改。

 class SampleHandler: RPBroadcastSampleHandler {

    override func broadcastStarted(withSetupInfo setupInfo: [String : NSObject]?) {
       appGroupDefaults.set(true, forKey: appGroupUserDefaultKeys.isScreenBroadcastStarted.rawValue)
    }

    override func broadcastFinished() {
       appGroupDefaults.set(true, forKey: appGroupUserDefaultKeys.isScreenBroadcastStopped.rawValue)
    }
    
 }

【讨论】:

  • 这可以测试广播是否正在进行中。我需要知道何时呈现选择器视图
  • 使用定时器并不理想
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-17
  • 2015-12-27
  • 1970-01-01
  • 2016-06-30
  • 2016-07-07
  • 1970-01-01
相关资源
最近更新 更多