如何在swift中录制屏幕视频?

时间:2016-04-19 03:12:50

标签: ios swift audio video screen-recording

我正在做一个猜歌游戏应用程序,我需要在用户猜测时记录屏幕并捕获设备的音频输出。我希望我的应用程序支持ios8,所以" ReplayKit"离开桌子,然后我应该使用哪个SDK? 我是初学者,如果有任何示例代码会有更多的帮助,谢谢。

2 个答案:

答案 0 :(得分:2)

使用Apple的ReplayKit,您可以让您的用户记录游戏玩法,或者在您的情况下,无论用户在做什么。

包含{WWD 2015演示文稿的链接here

使用这些功能开始和停止录制:

func startRecording() {
        let recorder = RPScreenRecorder.sharedRecorder()

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

    func stopRecording() {
        let recorder = RPScreenRecorder.sharedRecorder()

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

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

答案 1 :(得分:0)

RPScreenRecorder很酷,虽然你无法访问视频,甚至无法访问它。我所提出的视频屏幕截图的唯一方法是制作截图,将它们存储在图像中的数组中,然后将其转换为视频。从性能的角度来看,它并不酷,而且很难实现30 + fps,但可能适用于某些用例,这里是full manual how to do it