当我正在处理的模块只是类时,如何在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 模块中?