
1. Fix SimpleCache startReadWrite asymmetry. Allow more concurrency. - startReadWrite does not have the concept of a read lock. Once a cached span is returned, the caller can do whatever it likes for as long as it wants to. This allows a read to be performed in parallel with a write that starts after it. - If there's an ongoing write, startReadWrite will block even if the return operation will be a read. So there's a weird asymmetry where reads can happen in parallel with writes, but only if the reads were started first. - This CL removes the asymmetry, by allowing a read to start even if the write lock is held. - Note that the reader needs to be prepared for the thing it's reading to disappear, but this was already the case, and will always be the case since the reader will need to handle disk read failures anyway. 2. Add isCached method.
ExoPlayer Readme
Description
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 (as of KitKat), including DASH and SmoothStreaming adaptive playbacks, persistent caching and custom renderers. Unlike the MediaPlayer API, ExoPlayer is easy to customize and extend, and can be updated through Play Store application updates.
Developer guide
The ExoPlayer developer guide provides a wealth of information to help you get started.
Reference documentation
Class reference (Documents the ExoPlayer library classes).
Using Eclipse
The repository includes Eclipse projects for both the ExoPlayer library and its accompanying demo application. To get started:
-
Install Eclipse and setup the Android SDK.
-
Open Eclipse and navigate to File->Import->General->Existing Projects into Workspace.
-
Select the root directory of the repository.
-
Import the ExoPlayerDemo and ExoPlayerLib projects.
Using Gradle
ExoPlayer can also be built using Gradle. For a complete list of tasks, run:
./gradlew tasks