【问题标题】:How to record not only the app's screen but everything on the screen, including other apps如何不仅记录应用程序的屏幕,还记录屏幕上的所有内容,包括其他应用程序
【发布时间】:2020-03-21 18:01:28
【问题描述】:

我正在尝试使用 ReplayKit(Swift) 实现屏幕录制应用程序。似乎当我离开应用程序时,会停止后台记录。在尝试了一些文件之后,到目前为止我明白我需要实现广播扩展。如果我的理解是正确的,那么请给我一些编程指南。

【问题讨论】:

标签: ios swift screen-recording replaykit swift5.2


【解决方案1】:

试试这个库

Screen capture

或者这个:

Vid recorder

import ScreenCapture

let recorder = ScreenCapture.recordScreen("/path/to/save/to.mp4")

recorder.start()
...
recorder.stop()

let movieUrl = recorder.destination

否则你可以这样做:

import ReplayKit
import UIKit

class ViewController: UIViewController, RPPreviewViewControllerDelegate {
    override func viewDidLoad() {
        super.viewDidLoad()

        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Start", style: .plain, target: self, action: #selector(startRecording))
    }

    @objc func startRecording() {
        let recorder = RPScreenRecorder.shared()

        recorder.startRecording{ [unowned self] (error) in
            if let unwrappedError = error {
                print(unwrappedError.localizedDescription)
            } else {
                self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Stop", style: .plain, target: self, action: #selector(self.stopRecording))
            }
        }
    }

    @objc func stopRecording() {
        let recorder = RPScreenRecorder.shared()

        recorder.stopRecording { [unowned self] (preview, error) in
            self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Start", style: .plain, target: self, action: #selector(self.startRecording))

            if let unwrappedPreview = preview {
                unwrappedPreview.previewControllerDelegate = self
                self.present(unwrappedPreview, animated: true)
            }
        }
    }

    func previewControllerDidFinish(_ previewController: RPPreviewViewController) {
        dismiss(animated: true)
    }
}

Replay Kit 只记录它当前的应用程序屏幕,每当应用程序变为后台时,记录将停止,这是设计使然。

【讨论】:

猜你喜欢
  • 2015-08-17
  • 2023-03-16
  • 1970-01-01
  • 2020-04-18
  • 1970-01-01
  • 2023-04-01
  • 2016-10-26
  • 1970-01-01
  • 2011-09-05
相关资源
最近更新 更多