Сначала вам нужно создать RTCMediaStream
, который содержит аудиодорожки и видеодорожки:
@property RTCMediaStream * _Nullable mediaStream;
Потоки, которые вы получаете с вашего медиа-сервера с помощью streamId, преобразуют их в RTCMediaStream
, а затем используйте код ниже, чтобы отобразить его в RTCEAGLVideoView
if (mediaStream.videoTracks.count > 0) {
RTCVideoTrack *videoTrack = [self.mediaStream.videoTracks objectAtIndex:0];
[videoTrack addRenderer:remoteView];
}
Также создайте IBOutlet RTCEAGLVideoView, как показано ниже:
@property (weak, nonatomic) IBOutlet RTCEAGLVideoView *remoteView;
Теперь добавьте представление в свой контроллер представления и назначьте класс как RTCEAGLVideoView
к этому мнению. Затем подключите розетку videoView.
Если вы не используете раскадровку, используйте следующий код:
RTCEAGLVideoView *remoteView = [[RTCEAGLVideoView alloc] initWithFrame:self.frame]; // pass CGRect frame here.
remoteView.delegate = self;
[yourView addSubview:remoteView];
Теперь вы можете просматривать свое видео.
Добавить RTCEAGLVideoView в VStack ( ) используйте ниже:
struct RemoteView: UIViewRepresentable {
func remoteView(context: Context) -> RTCEAGLVideoView {
//create frame for RTCEAGLVideoView here
}
}
struct RemoteView_Preview: PreviewProvider {
static var previews: some View {
RemoteView(frame: .zero)
}
}
В VStack используйте как:
VStack {
RemoteView(frame)
VStack{
Text("")
}
}