
The main demo app was still targeting API 29 to avoid scoped storage restrictions. It is now updated to 34 (like the rest of the demo apps) and handles scoped storage as it should handle it. More specifically: - We need to request READ_MEDIA_... permissions instead of READ_EXTERNAL_STORAGE from API33. - The legacy scoped storage opt-out can be removed - READ_MEDIA_... permissions don't allow arbitrary file access if the file doesn't end in a typical media file extension, so this change adds a remark on the guide page to place samples in the app-specific directory. - We also don't have to request permissions for the app-specific directories. - Custom json files can't be placed in arbitray local locations because they don't end in a media file extension, as there is no way we can request a permission to load them. This means we can remove the storage request logic in SampleChooserActivity. Issue: google/ExoPlayer#6045 PiperOrigin-RevId: 549252474
ExoPlayer main demo
This is the main ExoPlayer demo app. It uses ExoPlayer to play a number of test streams. It can be used as a starting point or reference project when developing other applications that make use of the ExoPlayer library.
See the demos README for instructions on how to build and run this demo.