Minimize the video call screen and display a floating RTCEAGLVideoView over other screens

andrew.n

Member
I want to minimize the video call screen and display a floating RTCEAGLVideoView (with the partner streaming data) over the screen that was before, so the user can scroll and see other conversations from the list (or navigate to other screens in the app), meanwhile, the video call should be active, so they can talk, and if he taps again on the minimized view, he can go back to the screen with the video call.

I did some research for this part by reading the topics on FlashPhoner forum and also on Google's forum for WebRTC, but I couldn't something useful about how to do this.

My first question regarding this capability is if this kind of functionality should be considered as a picture in picture approach?

Secondly, when I create the streamer, I have to provide the RTCEAGLVideoView and as I understood, I cannot change the view that is used by the streamer instance later on.

This kind of functionality is in all video calling apps (Messenger, Skype, Whatsapp, etc), so we also want to have this. Any guidelines/advice about how to make it?

Thanks in advice :).
 

Max

Administrator
Staff member
Good day.
My first question regarding this capability is if this kind of functionality should be considered as a picture in picture approach?
Probably yes. However, this is subject to test.
Secondly, when I create the streamer, I have to provide the RTCEAGLVideoView and as I understood, I cannot change the view that is used by the streamer instance later on.
This kind of functionality is in all video calling apps (Messenger, Skype, Whatsapp, etc), so we also want to have this. Any guidelines/advice about how to make it?
Those applications are probably use something like React Native which have a separate WebRTC implementation. We raised the ticket WCS-2852 to support React Native but this will take a time.
You can also use WebSDK, in this case the browser is responcible for page items resizing and page layout.
 

andrew.n

Member
Those applications are probably use something like React Native which have a separate WebRTC implementation. We raised the ticket WCS-2852 to support React Native but this will take a time.
You can also use WebSDK, in this case the browser is responcible for page items resizing and page layout.
We are making the app full native on iOS... Is there another ticket to make this find of feature for iOS native apps?
 

Max

Administrator
Staff member
Is there another ticket to make this find of feature for iOS native apps?
There is the ticket WCS-2794 to update WebRTC library in iOS SDK. In this case, RTCEAGLVideoView will probably be replaced by RTCMTLVideoView.
There is also the ticket WCS-2853 to migrate iOS SDK from Objective C to Swift, in this case WebRTC library will also be updated.
Both tickets will take a time.
 

Max

Administrator
Staff member
Good day.
We released iOS SDK 2.6.1:
- WebRTC library is actual, downloading from CocoaPods on every build
- Simple GPUImage usage example with beautifying filter
Please download iOS SDK library here https://flashphoner.com/downloads/builds/flashphoner_client/wcs-ios-sdk/2.6/WCS-iOS-SDK-2.6.1.tar.gz
Review the GPUImageDemo example description here https://docs.flashphoner.com/display/IOSSDK2EN/iOS+GPUImageDemo and source code here https://github.com/flashphoner/wcs-ios-sdk-samples/tree/2.6/WCSExample/GPUImageDemo
You can try to use RTCMTLVideoView as it supported by WebRTC library.
Swift migration (ticket WCS-2853) still in progress. Unfortunately, we cannot migrate SDK internals to Swift because WebRTC library is written in Objective C, but we're working to provide Swift wrapper for SDK integration to Swift projects.
 

Max

Administrator
Staff member
Good day.
Since build 2.6.19, iOS SDK includes two frameworks: Objective C and Swift
Please review Swift framework examples description here and source code here
 
Top