There are few alternatives for implementing video playback in your native mobile application. Every alternative introduce different advantages and challenges.
- Web view - a WebView (UIWebView in iOS and WebView in Android) allows you to create a view that functions like a browser's video player. The main advantage of this approach is the implementation simplicity. The drawbacks include heavy cpu and memory consumption and limited UI control.
- Native Player - both iOS and Android provide their own native players. The native players introduce a feature rich media playback engine with adaptive streaming support that is based on an optimized and efficient code stack. Thanks to these advantages, the iOS and Android native video players are used by many leading mobile native video player vendors that added functionality such as monetization and UI skinning capabilities.
Mobile native players’ libraries
The recommended mobile native players’ libraries are:
AVPlayer is a controller object used to manage the playback and timing of a media asset. AVPlayer can be used to play local and remote file-based media, such as QuickTime movies and HTTP Live Streaming.
ExoPlayer is an open source project by Google that supports features not currently provided by MediaPlayer, including Dynamic adaptive streaming over HTTP (DASH), SmoothStreaming and Common Encryption.
Cloudinary integration with Mobile native players
Cloudinary's video management service enables video upload, advanced manipulation and delivery to any device, including mobile devices. Cloudinary can automatically generate and deliver Adaptive bitrate streaming videos from a single original video, transcoded to HTTP Live Streaming (HLS) and Dynamic Adaptive Streaming over HTTP (MPEG-DASH). For further information, please refer to https://cloudinary.com/documentation/video_manipulation_and_delivery#adaptive_bitrate_streaming_hls_and_mpeg_dash