JcPlayer

Additional

Language
Kotlin
Version
2.6.13 (Sep 19, 2018)
Created
Aug 2, 2016
Updated
Sep 19, 2018
Owner
Jean Carlos (jeancsanchez)
Contributors
Joielechong (joielechong)
Jean Carlos (jeancsanchez)
iRajul
3
Activity
Badge
Generate
Download
Source code
APK file

Advertisement



A simple audio player for Android that you can plugin to your apps quickly get audio playback working.

New features

  • Raw files
  • Asset Files
  • Local files

Tested files

Not tested URLs

Gradle Dependency (Project level)

allprojects {
 repositories {
  jcenter()
         maven { url "https://jitpack.io" }
     }
 }

Gradle Dependency (Module level)

dependencies {
    // ... other dependencies
     implementation 'com.github.jeancsanchez:JcPlayer:{version}'
}

Getting Started

You only need a JcPlayerView on your Layout Activity/Fragment. All the controls and everything else are created by the player view itself.

<com.example.jean.jcplayer.view.JcPlayerView
    android:id="@+id/jcplayer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

Code Setup

Find your JcPlayerView xml and...

    jcplayerView = (JcPlayerView) findViewById(R.id.jcplayerView);

Option 1: Just init a playlist

    ArrayList<JcAudio> jcAudios = new ArrayList<>();
    jcAudios.add(JcAudio.createFromURL("url audio","http://xxx/audio.mp3"));
    jcAudios.add(JcAudio.createFromAssets("Asset audio", "audio.mp3"));
    jcAudios.add(JcAudio.createFromRaw("Raw audio", R.raw.audio));

    jcplayerView.initPlaylist(jcAudios, null);

Option 2: Initialize an anonymous playlist with a default title for all

    jcplayerView.initAnonPlaylist(jcAudios);

Option 3: Initialize an playlist with a custom title for all

    jcplayerView.initWithTitlePlaylist(urls, "Awesome music");

Call the notification player where you want.

    jcplayerView.createNotification(); // default icon

OR

    jcplayerView.createNotification(R.drawable.myIcon); // Your icon resource

How can I get callbacks of player status?

    MyActivity implements JcPlayerManagerListener {
        ....
        jcplayerView.setJcPlayerManagerListener(this);
        // Just be happy :D
 }

Custom layout

You can customize the player layout by manipulating theses attributes.

        app:next_icon
 app:next_icon_color
 app:pause_icon
 app:pause_icon_color
 app:play_icon
 app:play_icon_color
 app:previous_icon
 app:previous_icon_color
 app:progress_color
 app:random_icon_color
 app:repeat_icon
 app:repeat_icon_color
 app:seek_bar_color
 app:text_audio_current_duration_color
 app:text_audio_duration_color
 app:text_audio_title_color

How to contribute

Follow this guidelines, specially the commits style guide: https://github.com/jeancsanchez/Android-Guidelines-and-Architecture/blob/master/code_guidelines.md

Note

The list view is developer responsibilty

TODO LIST

  • Set custom layouts for player.
  • Add Instrumentation tests
  • Add unity tests.