我一直在使用 ReplayKit 进行所有过去的更新,但现在在 iOS 12 中,我的录音有时可以工作,有时不能......但通常它们不会。大多数情况下,当我停止录制时,我得到的是:
完全黑屏。
这在我之前没有发生过,这非常令人沮丧。这是我使用 ReplayKit 录制屏幕的方式:
import ReplayKit
class ViewController: UIViewController, AVCaptureVideoDataOutputSampleBufferDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate, RPPreviewViewControllerDelegate {
func startRecording() {
func start() {
guard RPScreenRecorder.shared().isAvailable else {
print("Recording is not available at this time.")
return
}
RPScreenRecorder.shared().isMicrophoneEnabled = micToggle
RPScreenRecorder.shared().startRecording { [unowned self] (error) in
guard error == nil else {
print("There was an error starting the recording.")
return
}
print("Started Recording Successfully")
isRecording = true
}
}
DispatchQueue.main.async {
start()
}
}
func stopRecording() {
func stop() {
RPScreenRecorder.shared().stopRecording { [unowned self] (preview, error) in
print("Stopped recording")
guard preview != nil else {
print("Preview controller is not available.")
return
}
onGoingScene = true
preview?.previewControllerDelegate = self
self.present(preview!, animated: true, completion: nil)
print("presented")
isRecording = false
}
}
DispatchQueue.main.async {
stop()
}
}
func previewControllerDidFinish(_ previewController: RPPreviewViewController) {
previewController.dismiss(animated: true, completion: nil)
RPScreenRecorder.shared().discardRecording {
print("discarded")
}
}
当它工作时,所有的打印语句都被打印出来,但是当黑屏出现时,最后一个打印语句被“呈现”。
我绝对迫切需要一些帮助,因为我不知道如何解决这个问题。任何帮助将非常感激。
谢谢
编辑: 我刚刚意识到我正在使用“AVCaptureVideoPreviewLayer”,如果这可能是问题。如果是这样,解决方法是什么?