public override void ViewDidLoad() { base.ViewDidLoad(); Opentok.Base.otc_init(); publisher = new OTGLVideoRender(new RectangleF(0, 0, 320, 240)); subscriber = new OTGLVideoRender(new RectangleF(0, 240, 320, 240)); sessCb = new Session.otc_session_cb(); sessCb.on_connected = on_connected_cb; sessCb.on_stream_received = on_stream_received_cb; sessCb.userData = (IntPtr)GCHandle.Alloc(this); sess = Opentok.Session.otc_session_new(API_KEY, SESSION_ID, ref sessCb); Opentok.Session.otc_session_connect(sess, TOKEN); publisher.BackgroundColor = UIColor.Red; subscriber.BackgroundColor = UIColor.Yellow; View.AddSubview(publisher); View.AddSubview(subscriber); toggleButton = new UIButton(new RectangleF(0, 480, 320, 100)); toggleButton.SetTitle("Toggle Camera", UIControlState.Normal); toggleButton.TouchUpInside += (object sender, EventArgs e) => Opentok.iOS.VideoCapturer.video_capturer_toggle_camera_position(capturer); View.AddSubview(toggleButton); }
public void DoRenderFrame(OTGLVideoRender view, IntPtr frame) { var format = Opentok.VideoFrame.otc_video_frame_get_format(frame); var copy = Opentok.VideoFrame.otc_video_frame_copy(format, frame); view.RenderVideoFrame(copy); Opentok.VideoFrame.otc_video_frame_destroy(copy); }