Complete music player published in the Play Store. Heavily relies on Dagger, RxJava kotlin coroutines and Clean architecture.
Compilation can be done in 2 ways. Using the first method will prevent you from supporting FFMPEG, FLAC and OPUS formats.
In build.gradle
service-music module.
- Uncomment
implementation 'com.google.android.exoplayer:exoplayer-core:$latest_exoplayer_version
- Comment
implementation project(':exoplayer-library-core')
implementation project(':exoplayer-extension-flac')
implementation project(':exoplayer-extension-opus')
implementation project(':exoplayer-extension-ffmpeg')
- Clone ExoPlayer
- In
settings.gradle
:- Update
gradle.ext.exoplayerRoot
to match your ExoPlayer repo path - Change
withapply from: new File(gradle.ext.exoplayerRoot, 'core_settings_min.gradle')
apply from: new File(gradle.ext.exoplayerRoot, 'core_settings.gradle')
- Update
- Create
gradle.properties
in project root folder.
# OPTIONAL properties
org.gradle.jvmargs=-Xmx4096m
org.gradle.parallel=true
org.gradle.daemon=true
android.useAndroidX=true
android.enableJetifier=true
android.enableSeparateAnnotationProcessing=true
# incremental
kotlin.incremental=true
kapt.incremental.apt=true
# parallel
kapt.use.worker.api=true
# compilation avoidance
kapt.include.compile.classpath=false
# proguard
android.enableR8=true
android.enableR8.fullMode=true
# MANDATORY properties (keys)
last_fm_key="your_key"
last_fm_secret="your_secret"
aes_password="your_aes_password"
ad_mob_key="your_ad_mob_key"
# test ad unit id
ad_mob_unity_id_bottom_navigation="ca-app-pub-3940256099942544/6300978111"
To support FLAC, FFMPEG and OPUS formats to you need to compile manually the corresponding ExoPlayer extensions using NDK-r17c or older, newer version of NDK are not supported.
Help translate the app to your language here
If you find any problems, please feel free to file an issue.