Have you been keeping an eye on the vidyo.io release notes? If not, you may have missed several recently added features that improve video calling. We continually make improvements to vidyo.io and we encourage everyone building an app to stay up to date with the latest version so you can take advantage of these new features. Read below to learn what we’ve been doing over the last several releases.
VidyoConnector Mobile App Now in App Store
VidyoConnector is our reference application for vidyo.io. Having the app now in the App Store makes it much easier to try vidyo.io on your mobile device without going through the process of building and loading the app manually.
Now you can simply download the app, plug in the connection details, and connect into your video call. The VidyoConnector mobile app also works with the vidyo.io demo page, so you can experiment with users connecting from both desktop and mobile devices in the same call. The VidyoConnector mobile app is currently available in the Apple App store. We will be making the Android version available soon.
The first step to get your vidyo.io app working is to obtain a valid token to connect a call. We provide several downloadable scripts to use in your application back end. However, if you’re just experimenting you may not have setup an application backend.
Now we have a token-generation utility you can use to quickly generate a token using your own developer key. You can simply copy and paste the token into your application and you’re ready to connect. The token-generation tool is a great way to do early testing and prototyping with vidyo.io. You can give it a try by going to the tools page.
Audio Only Tile
Not all users connected into a call will be transmitting video — either they don’t have a camera plugged in or they’ve set themselves to privacy mode but they still might want to join the discussion as an audio-only participant.
We’ve added a conference tile to represent audio-only participants. The tile has a black background with a gray circle containing the initials taken from the display name. Now when users are in audio-only mode during their video call, they still have a tile presenting them as an active speaker in the overall group video conference layout.
Dual Video and Audio Stream Support
You can now feed additional sources of audio and video into the call from a single endpoint. This opens up potential use cases where additional audio and video sources can be fed into a conference from other devices, such as digital exam cameras and stethoscopes.
With the addition of this feature, screen sharing has been extended to allow the selection of attached video devices as a content source rather than just using the screen as the source for content. You can select a second camera to be fed into the video call as a content stream.
Similarly, you can also select an audio device to source a second microphone for the call. You also have the option to set both processed and unprocessed audio modes. When set to unprocessed, the audio is transmitted in original quality, making it useful for healthcare purposes such as using digital stethoscopes.
Check out the VidyoConnectorSelectVideoContentShare VidyoConnectorSelectAudioContentShare() APIs for more details.
Faster Call Setup Time
We are always working to improve the user experience. We recently focused our attention on reducing the call setup time. When a user initiates a video call, the SDK and vidyo.io cloud start running numerous checks to perform firewall traversal and locate the nearest server to host the call. In order to reduce the time from call initiation to call establishment, we have optimized the call setup process and reduced signaling bandwidth, which has resulted in up to a 200 ms reduction in call setup time.
Best of all, as long as your app is using the latest SDK version, you don’t need to do anything to benefit from this improvement.
Frame Size Change Notification API
This new API allows you to receive a notification whenever there is a change in resolution from the sending endpoint. This API is most commonly used when accommodating mobile devices in a call.
When using a mobile device, users can change the orientation of their device, which then changes the aspect ratio of the transmitted video from landscape to portrait or vice versa, resulting in a change in resolution. The default layout does a good job of handling these changes in aspect ratio to properly display the video within the video tile for the mobile participant.
If you’ve instead opted to build a custom layout for your app, you can use the frame size change notification to dynamically change the layout based upon the transmitting video aspect ratio.
You can use the VidyoRemoteCameraRegisterFrameSizeListener API to register for notifications for a particular remote camera, and when its aspect ratio changes, you can update the dimensions of the view that the camera stream is being rendered to. This will result in the entire view being filled with video and letterboxing being eliminated.
Another change made to group video layouts was to the animation speed. When using the default layout, an animation of the video tile shows the active participant replacing the inactive participant, based upon who is speaking.
The animation speed has been increased, which reduces the time for layout changes. The animation speed is configurable using the VidyoConnectorSetViewAnimationSpeed API.
Streamlined App Store Submissions for iOS
We’ve changed the VidyoClientIOS.framework from a dynamic to a static library. With a static framework, the developer does not need to remove the simulator code architecture from the project. This makes the submission to the App Store easier and the final app smaller in size.
New WebRTC Handling (BETA)
Many of our users are building very cool web-based apps using WebRTC. Based on feedback, we’ve done a lot of internal work on our infrastructure that handles WebRTC. We are changing the way we handle media streams for WebRTC video calls, which should improve the user experience by reducing latency and improving the quality of the video image.
We are first focusing on Google Chrome with support for other browsers following. While we are in beta, these improvements are set behind an optional URL parameter. When this feature moves out of beta, it will become the default with no need for the URL parameter. We encourage everyone to test out this new capability and provide feedback to us. To learn how to enable this feature, read the knowledge base article.