2

Can't load video from a UIImagePickerController using WebRTC. With saved in-app Bundle file, it works, but if I use UIImagePickerController

UIImagePickerControllerDelegate.imagePickerController(_:didFinishPickingMediaWithInfo:))

so I use mediaInfo like this:

(info[.mediaURL] as! URL).path

This code I use to start capturing a video file

   public func startCaptureLocalVideoFile(name: String, renderer: RTCVideoRenderer) {
        print("startCaptureLocalVideoFile")

        stopLocalCapture()

        localRenderer = renderer
        videoCapturer = RTCFileVideoCapturer(delegate: videoSource)

        guard let capturer = videoCapturer as? RTCFileVideoCapturer else {
            print("WebRTCService can't get capturer")
            return
        }

        capturer.startCapturing(fromFileNamed: name) { error in
            print("startCapturing error ", error)
            return
        }

        localVideoTrack?.add(renderer)
    }

so I get this media info:

info  [__C.UIImagePickerControllerInfoKey(_rawValue: UIImagePickerControllerMediaURL): file:///private/var/mobile/Containers/Data/PluginKitPlugin/5F7A4469-5006-4590-8F59-396CD86A083B/tmp/trim.B46C5878-BAF2-432B-B627-9787D74CE7B0.MOV, __C.UIImagePickerControllerInfoKey(_rawValue: UIImagePickerControllerMediaType): public.movie, __C.UIImagePickerControllerInfoKey(_rawValue: UIImagePickerControllerReferenceURL): assets-library://asset/asset.MOV?id=33EECFB7-514A-435A-AA19-26A055FB9F06&ext=MOV]

and this error:

startCapturing error  Error Domain=org.webrtc.RTCFileVideoCapturer Code=2001 "(null)" UserInfo={NSUnderlyingError=File /private/var/mobile/Containers/Data/PluginKitPlugin/5F7A4469-5006-4590-8F59-396CD86A083B/tmp/trim.B46C5878-BAF2-432B-B627-9787D74CE7B0.MOV not found in bundle}

Seems like it works with Bundle.main only, but we can't write to it.

Am I doing it right? Maybe there is another way to accomplish this? Thanks for the help!

Zaporozhchenko Oleksandr
  • 4,660
  • 3
  • 26
  • 48

0 Answers0