当我正在处理的模块只是类时,如何在React Native中为UIVideoEditorController分配一个委托

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当我正在处理的模块只是类时,如何在React Native中为UIVideoEditorController分配一个委托相关的知识,希望对你有一定的参考价值。

    func previewRecording (withFileName fileURL: String) {
        if UIVideoEditorController.canEditVideo(atPath: fileURL) {
            let rootView = UIApplication.getTopMostViewController()
            let editController = UIVideoEditorController()
            editController.videoPath = fileURL
//            editController.delegate = ?????
            rootView?.present(editController, animated: true, completion: nil)
        } else {

        }
    }

^当前代码

我已经绕圈子走了几圈试图解决这个问题。在这里为UIVideoEditorController指定委托的最佳方法是什么?这是一个react-native模块,其中没有ViewController,只有实用程序类。

我遇到过一些简单的示例代码

extension SomeViewController : 
    UIVideoEditorControllerDelegate, 
    UINavigationControllerDelegate {

  func videoEditorController(_ editor: UIVideoEditorController, 
    didSaveEditedVideoToPath editedVideoPath: String) {

    print("saved!")
  }
}

我只是失去了如何在我的模块中实现这一点。

答案
    @objc class ScreenRecordCoordinator: NSObject
    {
        let previewDelegateView = PreviewDelegateView()
        // .......
        editController.delegate = previewDelegateView
    }

    class PreviewDelegateView: UIViewController, UINavigationControllerDelegate, UIVideoEditorControllerDelegate {

        var isSaved:Bool = false

        func videoEditorController(_ editor: UIVideoEditorController, didSaveEditedVideoToPath editedVideoPath: String) {
            print("save called")
            if(!self.isSaved) {
                self.isSaved = true
                print("trimmed video saved!")
                editor.dismiss(animated: true, completion: {
                ReplayFileUtil.replaceItem(at: URL(fileURLWithPath: editor.videoPath), with: URL(fileURLWithPath: editedVideoPath))
                    self.isSaved = false
                })
            }
        }
    }

以上是关于当我正在处理的模块只是类时,如何在React Native中为UIVideoEditorController分配一个委托的主要内容,如果未能解决你的问题,请参考以下文章

如何将库的本地副本添加和编译到 Android React Native 模块中?

您可以使用 SCSS 模块定位/修改现有类吗?

将对象放入容器类时,OpenGL 不绘制

如何修复React.js中的箭头功能来处理道具

如何在 expo/react-native 应用程序中添加自定义节点模块?

你如何在React应用程序中进行服务器端处理?