SwiftUI WebRTC Аудио и видео рендеринг

У меня проблема с интеграцией аудио и видео из WebRTC в SwiftUI View. Я пытаюсь сделать это с помощью UIViewRepresentable, но улавливаю ошибку. Насчет потокового аудио понятия не имею. Мой вид SwiftUI:

        if showingVideo {
            //MARK: SHOW VIDEO, AND TURN ON AUDIO

        } else {

        }

Моя попытка использовать UIViewRepresentable

func makeUIView(context: Context) -> RTCEAGLVideoView  {
        self.remoteView.frame = CGRect(x: 20, y: 20, width: 200, height: 300)
        self.remoteView = self.video.remoteVideoView!
        return self.remoteView
    }

person Maxim Svitlovskiy    schedule 11.06.2020    source источник
comment
Возможно, вам следует запустить remoteView в makeUIView, просто нужно вернуть его при настройке полного необходимого свойства.   -  person Hồng Phúc    schedule 11.06.2020
comment
@ HồngPhúc, ты прав, правда, спасибо ‹3, это поможет мне, но ты можешь помочь мне со звуком?   -  person Maxim Svitlovskiy    schedule 11.06.2020
comment
у меня нет опыта работы с WebRTC, поэтому я не могу указать вам, как это сделать   -  person Hồng Phúc    schedule 12.06.2020


Ответы (1)


Ответ делать что-то вроде этого

@ObservedObject var videoCallController: VideoCallController
func updateUIView(_ uiView: UIViewType, context: Context) {
    let remoteRenderer = RTCEAGLVideoView(frame: UIScreen.main.bounds)
    self.videoCallController.webRTCClient.renderRemoteVideo(to: remoteRenderer)

}
func makeUIView(context: Context) -> RTCEAGLVideoView {
    let remoteRenderer = RTCEAGLVideoView(frame: UIScreen.main.bounds)
    self.videoCallController.webRTCClient.renderRemoteVideo(to: remoteRenderer)
    return remoteRenderer
}

Где рендерить удаленное видео

func renderRemoteVideo(to renderer: RTCVideoRenderer) {
    self.remoteVideoTrack?.add(renderer)
}

Удаленная видеодорожка - RTCVideoTrack.

person Maxim Svitlovskiy    schedule 14.07.2020