doublesymmetry / react-native-track-player

A fully fledged audio module created for music apps. Provides audio playback, external media controls, background mode and more!
https://rntp.dev/
Apache License 2.0
3.3k stars 1.02k forks source link

[Feature Request] Android Media3 migration #2373

Closed lovegaoshi closed 1 month ago

lovegaoshi commented 2 months ago

What is the need and use case of this feature? migrate from long deprecated exoplayer2 to media3, as seen in https://developer.android.com/media/media3/exoplayer/migration-guide

Describe the ideal solution i'm reviving this thread: https://github.com/doublesymmetry/react-native-track-player/issues/2252 as I did some research on the flutter RNTP audio_service about how they handled MediaLibraryService, NotificationManager, referred to my previous work and worked/still working on my own migration. I believe I'm quite close at only needing to implement custom commands, and others seem to be functional. Some of the takeaways:

The real media3 migration (deprecating NotificationManager) is quite a large rewrite and given the amount of attention this lib gets, I dont see it getting anywhere at the moment. luckily from audio_service and what I've tried, NotificationManager can just stay as it is.

audio_service also opted to use MediaBrowserServiceCompat and MediaSessionCompat instead of the new MediaLibraryService (which requires a small overhaul on data representation) and this would require no/few changes in my android auto work.

the actual grunt media3 migration work goes quite smoothly as only MediaSession has changed APIs from MediaSessionCompat, others have their direct drop-in replacements in media3.

im also working on a complete migration to media3 (MediaLibraryService) at https://github.com/lovegaoshi/react-native-track-player/tree/APM-media3.

Describe alternatives you've considered N/A

Additional context https://github.com/lovegaoshi/KotlinAudio/tree/chore-media3

How I can Help N/A

lovegaoshi commented 1 month ago

i fullymigrated to media3. closing.