Добавьте 2 представления в вашем контроллере представления. Один предназначен для локального просмотра видео, а другой - для удаленного видео. Установите его розетки для просмотра контроллера. У меня есть рабочий пример звукового вызова, и я просто добавляю эти вещи в свой контроллер просмотра вызовов.
func videoController() -> SINVideoController {
return appDeletgate.client.videoController()
}
В viewdidload проверьте, предлагается ли видео по вызову.
if call.details.isVideoOffered {
localVideoView.addSubview(videoController().localView())
//localVideoFullscreenGestureRecognizer.require(toFail: switchCameraGestureRecognizer)
//videoController().localView().addGestureRecognizer(localVideoFullscreenGestureRecognizer)
//videoController().remoteView().addGestureRecognizer(remoteVideoFullscreenGestureRecognizer)
}
Добавьте этот метод для добавления удаленного видео в поле зрения.
func callDidAddVideoTrack(_ call: SINCall?) {
remoteVideoView.addSubview(videoController().remoteView())
}
Также убедитесь, что вы добавили эти 2 ключа в info.plist
<key>NSCameraUsageDescription</key>
<string>$(PRODUCT_NAME) need to access your camera for video call.</string>
<key>NSMicrophoneUsageDescription</key>
<string>$(PRODUCT_NAME) uses the Microphone for calling</string>
И это, наконец, то, как я это называю.
let call: SINCall? = self.callClient().callUserVideo(withId: recipientName) //self.callClient().callUser(withId: recipientName)
let callVC = mainStoryBoard.instantiateViewController(withIdentifier: "CallVC") as! CallVC
callVC.call = call
self.navigationController?.pushViewController(callVC, animated: true)