【问题标题】:URL of screen recording from ReplayKitReplayKit 录屏的 URL
【发布时间】:2021-04-06 10:14:02
【问题描述】:

我喜欢获取 ReplayKit 屏幕录制的 url,而不是将视频保存到我的相机胶卷或转发它。从 WWDC 2017 视频中提到,要获取 url,可以使用以下函数:

func stopRecording(withOutput url: URL, completionHandler: ((Error?) -> Void)? = nil){}

但是我很难弄清楚如何调用/实现这行代码。我有一个开始录制@IBAction 按钮和一个停止录制@IBAction 按钮。屏幕录制工作正常。但是,有人可以告诉我如何或/以及在何处添加此 stopRecording 功能,以便我可以获取屏幕录制的 url?感谢任何帮助指出我正确的方向。我还在学习 Xcode。谢谢!

@IBAction func StartScreenRec( sender: Any) {
    screenrecorder.startRecording { (error) in
        if let error = error {
            print(error)
        }
        self.ScreenStartRecordBtn.isHidden = true
        self.StopScreenRecBtn.isHidden = false
    }
}



@IBAction func StopScreenRec( sender: Any) {
    screenrecorder.stopRecording { (previewVC, error) in
        if let previewVC = previewVC {
            previewVC.modalPresentationStyle = .fullScreen
            previewVC.previewControllerDelegate = self
            self.present(previewVC, animated: true, completion: nil)
        }

        if let error = error {
            print(error)
        }

        self.ScreenStartRecordBtn.isHidden = false
        self.StopScreenRecBtn.isHidden = true
    }
}

【问题讨论】:

  • 你得到答案了吗?

标签: swift xcode replaykit


【解决方案1】:

我希望这会有所帮助 - 要获取刚刚录制的视频的 URL,需要先指定 URL,然后分配 withOutput 函数:

outputURL = tempURL()
    recorder.stopRecording(withOutput: outputURL) { (error) in
        guard error == nil else{
            print("Failed to save ")
            return
        }
        print(self.outputURL)
    }

这是针对 tempURL() 函数的:

func tempURL() -> URL? {
    let directory = NSTemporaryDirectory() as NSString
        
    if directory != "" {
        let path = directory.appendingPathComponent(NSUUID().uuidString + ".mp4")
        return URL(fileURLWithPath: path)
    } 
    return nil
}

【讨论】:

  • 太酷了!对此感激不尽。当我回到它身边时,我会试试这个。迫不及待想测试一下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-02
  • 1970-01-01
相关资源
最近更新 更多