【问题标题】:RPScreenRecorder stopRecording block not getting calledRPScreenRecorder stopRecording 块没有被调用
【发布时间】:2017-09-13 13:59:28
【问题描述】:

我已经进行了足够多的搜索,但未能找到解决方案。

我正在使用 ReplayKit 来记录我的应用程序的屏幕。我已通过调用

开始录制屏幕
let sharedRecorder = RPScreenRecorder.shared()
sharedRecorder.startRecording() { error in 
    if let error = error {
        self.showScreenRecordingAlert(message: error.localizedDescription)
    }
}

当我按下stopRecord 按钮时,我正在打电话

let sharedRecorder = RPScreenRecorder.shared()
sharedRecorder.stopRecording { previewViewController, error in 
    if let error = error {
        self.showScreenRecordingAlert(message : error.localizedDescription)
        return
    }
}

但我面临的问题是,程序控制没有进入stopRecording 块内。 当我在做po sharedRecorder.isRecording 时,它总是返回false。 我已经完成了我所知道的一切,但未能找到解决方案。

【问题讨论】:

  • 你解决了这个问题吗?我也面临这个问题。我知道 stopRecording 正在被调用,但该块永远不会被调用。我尝试在各种调度中调用 stopRecording,但没有任何帮助。我想知道这是否与 iOS11 冲突。
  • 不。我仍然被困在这个废话中。 :( @JohnRiselvato 我想知道,但我在 iOS 11 测试版中下载了一个应用程序,该应用程序名为 Housecraft。这适用于屏幕录制,请检查一次。
  • 有什么消息吗?我不敢相信这个错误还没有被修复!
  • 没错!它还没有修复。 :(

标签: ios swift ios11 replaykit


【解决方案1】:

如果您的代码遇到上述问题,我已经找到了解决方案。

let sharedRecorder = RPScreenRecorder.shared()
sharedRecorder.stopRecording { previewViewController, error in 
if let error = error {
    self.showScreenRecordingAlert(message : error.localizedDescription)
    return
}}

如果您在模拟器上运行您的应用程序,Above Block 将不会调用,所以请使用真机测试然后上述方法肯定会调用。

谢谢。

【讨论】:

    【解决方案2】:

    在运行 XCode 9.4.1 并在 iOS 11.4.0 上构建时遇到了这个问题。将手机升级到 iOS 11.4.1 修复了该错误。我不确定 XCode 版本的差异是根本原因还是 11.4.0 刚刚被破坏。

    【讨论】:

      猜你喜欢
      • 2016-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-15
      • 1970-01-01
      • 1970-01-01
      • 2018-11-25
      相关资源
      最近更新 更多