alokomkar / canaree-music-player

Complete music player published in the Play Store. Heavily relies on Dagger, kotlin coroutines and Clean architecture.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Canaree: Music Player

platform-badge minsdk-badge paypal-badge googleplay-badge

Complete music player published in the Play Store. Heavily relies on Dagger, RxJava kotlin coroutines and Clean architecture.

Screenshots

Build

Compilation can be done in 2 ways. Using the first method will prevent you from supporting FFMPEG, FLAC and OPUS formats.

Method 1 (Fast)

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')

Open setting.gradle and comment the last three lines like below:

//gradle.ext.exoplayerRoot = '/Users/eugeniuolog/AndroidStudioProjects/ExoPlayer'
//gradle.ext.exoplayerModulePrefix = 'exoplayer-'
//apply from: new File(gradle.ext.exoplayerRoot, 'core_settings_min.gradle')

Method 2

  • Clone ExoPlayer
  • In settings.gradle:
    • Update gradle.ext.exoplayerRoot to match your ExoPlayer repo path
    • Change
      apply from: new File(gradle.ext.exoplayerRoot, 'core_settings_min.gradle')
      with
      apply from: new File(gradle.ext.exoplayerRoot, 'core_settings.gradle')

After both

  • 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"

Extensions (Linux or macOS recommended)

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.

Translations

Help translate the app to your language here

Issues

If you find any problems, please feel free to file an issue.

Open-source libraries

Download

About

Complete music player published in the Play Store. Heavily relies on Dagger, kotlin coroutines and Clean architecture.


Languages

Language:Kotlin 81.7%Language:Java 18.3%