Choosing the video player that your app will use is one of the more consequential decisions you will make, and is largely dependent on the target platforms you have selected. Once you have decided which platforms your app will support, you will be presented with a limited number of options for video players. Not all players are supported by all platforms.
Some platforms have native video players built in to their operating system that the You.i Engine can use as the default video player. These native video players may not have all the functionality you require, which will necessitate using a third-party option.
The use of a particular video player and the ability to swap out one player for another has implications for how your app code is structured. If a decision is made at a later date to add support for a platform, and that platform requires a different video player, the structure of your code can make that process more straightforward.
There are many considerations to make in choosing a video player. A key one is how Digital Rights Management (DRM) is going to be handled. DRM is a means of encoding video files to protect them from theft and unauthorized distribution.
In the development workflow, each method of DRM requires a specific type of encoding; the video player will determine from a technical standpoint the method of DRM that is able to be used. Using different video players may require different methods of encoding, requiring video files to be encoded multiple times. Each DRM has a different workflow and code, and its own video hosting requirements that should be understood.
Though this seems like a back-end process, managing the DRM is crucial to the function of an app, and can be a major source of delays when the rest of the app development is complete. The DRM is one of many aspects that require testing before the app is released to ensure that it works properly.
Streaming video formats are another important consideration. The video player you select will typically support certain formats and not others.
The collection of statistics and analytics about your users and their content and watching preferences is another consideration that is tied to your choice of video player. Some video players have their own built-in systems for collecting user analytics, but these may be incompatible with other third-party analytics packages.
Accessibility requirements are another important consideration. In some jurisdictions, features like closed captioning are legal requirements that you must include in your app. Subtitles are a similar sort of condition as closed captions: if your app includes multi-lingual content or is destined for a foreign-speaking region, you may need to provide some kind of subtitle or alternate audio track that will dub over the video in a language selected by the user. Audio tracks and subtitles may also be a consideration for your hearing-or vision-impaired users.
Depending on the requirements of your app, you may want to have some kind of live feed running at the same time as the option to choose a specific video to play, which will require using multiple video players simultaneously. Be aware that this can create serious issues with the memory demands on the devices you’re supporting. There are ways around this situation that will allow you to create the same appearance of multiple players without incurring the memory debt.
If your app is going to be supported on both mobile and 10-foot platforms, for example on both iOS and tvOS, will you need to support concurrency. Allowing a user to watch on multiple devices simultaneously will also have implications for the video players you choose.