The future of Toro in relationship with ExoPlayer

26 April 2017

I have been developed an Android library named Toro. TL;DR it is here.

About Toro

Description about this library can be found in that github repo. But in short, Toro supports the behavior of Media Playlist on RecyclerView, including auto playback and state managing (pause/resume etc). The motivation behind this comes from Facebook timeline, Instagram, etc.

About ExoPlayer

From ExoPlayer's README

ExoPlayer is an application level media player for Android. It provides an alternative to Android’s MediaPlayer API for playing audio and video both locally and over the Internet. ExoPlayer supports features not currently supported by Android’s MediaPlayer API, including DASH and SmoothStreaming adaptive playbacks. Unlike the MediaPlayer API, ExoPlayer is easy to customize and extend, and can be updated through Play Store application updates.

Latest version of Toro are built on top of ExoPlayer 2 (and other Media playback platforms, but ExoPlayer 2 is mostly focused). More about ExoPlayer can be found here and here.

What I'm talking about?

In development history of Toro, it went from supporting every Media playback platform as possible to focusing on ExoPlayer 2. It provides a common interface for playback, then it provides extensions that implement the interfaces on top of the Media playback platform. Right now you can see those extensions in the github repo. Currently Toro supports Android's default MediaPlayer APIs, ExoPlayer 1 and ExoPlayer 2.

Since ExoPlayer 2 is now preferred over ExoPlayer 1, and Android's MediaPlayer API is hard to use as well as maintain (which is also one of the motivation of ExoPlayer), and I'm the only active contributor of Toro, there is a need to consider the future path of the library.

In short, I love Media playback, so I'm not ending my library. But spending time to support all possible Platforms is impossible. Instead, I will push my focus to ExoPlayer 2+ from now on (in fact, I will keep support ExoPlayer 2 as long as it is under active development. Even after that, I will keep supporting the latest stable release for a reasonable duration). Furthermore, Toro comes with a pretty well modularization structure, and developing extensions are really straight-forward, I believe that supporting other platform are just the problem of time and human resources. So anyone in favor can take that part and contribute.