首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RPScreenRecorder如何录制应用程序动作扩展的屏幕音频和视频?

RPScreenRecorder如何录制应用程序动作扩展的屏幕音频和视频?
EN

Stack Overflow用户
提问于 2018-02-11 18:43:15
回答 2查看 1K关注 0票数 2

我想用目标动作扩展记录我的应用程序的屏幕、音频和视频。

如果我把这些代码放在一个普通的应用程序中,它就能工作,但是在Action扩展中却不能。

代码语言:javascript
复制
@IBAction func recButton(_ sender: Any) {


        if recButton.currentTitle == "stop" {
            stopRecording()
            recButton.setTitle("rec", for: .normal)
        }
        else {

            recButton.setTitle("stop", for: .normal)

            RPScreenRecorder.shared().isMicrophoneEnabled = true
            RPScreenRecorder.shared().startRecording(handler: {[unowned self] (error) in

            //Handler - never called
            if let unwrappedError = error {
                print(unwrappedError.localizedDescription)
            }
        })
        }
    }

    func stopRecording() {
        RPScreenRecorder.shared().stopRecording(handler: {(previewController, error) -> Void in

            //Handler - never called
            if previewController != nil {
                let alertController = UIAlertController(title: "Recording", message: "Do you want to discard or view your recording?", preferredStyle: .alert)

                let discardAction = UIAlertAction(title: "Discard", style: .default) { (action: UIAlertAction) in
                    RPScreenRecorder.shared().discardRecording(handler: { () -> Void in
                        // Executed once recording has successfully been discarded
                    })
                }

                let viewAction = UIAlertAction(title: "View", style: .default, handler: { (action: UIAlertAction) -> Void in
                    self.present(previewController!, animated: true, completion: nil)
                })

                alertController.addAction(discardAction)
                alertController.addAction(viewAction)

                self.present(alertController, animated: true, completion: nil)

            } else {
                // Handle error
            }
        })
    }

是否有另一种方法可以使用AVCaptureSession来实现这一目标,或者我是否需要使用其他方法来实现这个目标?谢谢。

EN

回答 2

Stack Overflow用户

发布于 2018-03-01 19:52:02

我很肯定苹果不会让你通过设计来设计。当涉及到扩展时,它们通常是非常严格的,无论是从什么是允许的api方面,还是在哪些方面都将通过应用程序审查。

即使你想出了一个解决方案来克服ReplayKit的问题,我想它也会被应用程序审查所拒绝。

在一般的应用程序审查指南中,app扩展编程指南被引用为一种定义性的指南,在该指南中,它对操作扩展特别指出:

在iOS中,一个动作扩展:

  • 帮助用户以不同的方式查看当前文档。
  • 总是出现在操作表或全屏模态视图中。
  • 只有当主机应用程序显式提供时,才接收选定的内容。

不太确定屏幕录音会以一种让苹果信服的方式融入到这种模式中。

票数 1
EN

Stack Overflow用户

发布于 2018-04-05 07:28:21

我不认为这是不可能的,因为我在apps上看到了一些应用程序,它们在iMessage扩展应用程序中录制视频和音频。比如:SuperMoji应用程序,这个应用程序只记录面部表情和音频,并在iPhone的消息应用程序中作为视频消息发送。

但是,我不知道如何在扩展应用程序中做到这一点。我正在做这件事,很快会告诉你的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48735074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档