
It's a transient state whose only use is when passing a removed download to onDownloadStateChanged. It's a bit strange to have it as a proper state, since we end up asserting that it's an invalid value in other places. This change adds an explicit onDownloadRemoved, which allows removal of the transient STATE_REMOVED, related assertions, and uncertainty when dealing with an @State variable whether it's necessary to handle it being STATE_REMOVED. PiperOrigin-RevId: 242444128
ExoPlayer demos
This directory contains applications that demonstrate how to use ExoPlayer. Browse the individual demos and their READMEs to learn more.