Mobile network data traffic is growing continuously. In Europe, the traffic share of real-time entertainemnt is significant as documented in the latest traffic reports. It is important, to serve all the media content to the users with good quality and minimum waiting time. Engineers have to deal with all the circumstances that comes with using mobile networks. For example, low bandwidth and high response time can be real problem while downloading a video.
Adaptivity in delivering the media content is a powerful solution. Video content is sampled by multiple bitrates and multiple quality, allowing the endpoint media player application to choose the best suitable media representation for the current network status. Cutting the media to slices called segments is another advantage for optimal preloading time (buffering) and saving bandwidth by downloading only the segments of the media the player needs.
Android is an open-source operating system for mobile devices owned by Google. Although in Android an intergrated media player API called MediaPlayer is already available, the tech giant started to develop a new media player library called ExoPlayer which can be easier to be extended with custom functions, behavior and network protocols than with its predecessor. It supports DASH and Microsoft’s SmoothStreaming.
I tested the library and the demo application preloaded with samples to play, implemented some useful functions, got familiar with the source code and made some measurements about the player.