{"id":26430384,"url":"https://github.com/jeancsanchez/jcplayer","last_synced_at":"2025-04-09T06:12:29.404Z","repository":{"id":10099295,"uuid":"64754344","full_name":"jeancsanchez/JcPlayer","owner":"jeancsanchez","description":":musical_note: A simple audio player for Android applications.","archived":false,"fork":false,"pushed_at":"2022-08-30T15:22:26.000Z","size":3902,"stargazers_count":269,"open_issues_count":41,"forks_count":110,"subscribers_count":8,"default_branch":"master_v2","last_synced_at":"2025-04-09T06:12:23.991Z","etag":null,"topics":["android","audio","audio-player","gradle-dependency","java","kotlin","library","media","player","players","playlist","radio","songs"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jeancsanchez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"patreon":"jeancsanchez"}},"created_at":"2016-08-02T12:20:10.000Z","updated_at":"2025-04-03T15:05:19.000Z","dependencies_parsed_at":"2022-08-07T05:15:29.625Z","dependency_job_id":null,"html_url":"https://github.com/jeancsanchez/JcPlayer","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeancsanchez%2FJcPlayer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeancsanchez%2FJcPlayer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeancsanchez%2FJcPlayer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeancsanchez%2FJcPlayer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jeancsanchez","download_url":"https://codeload.github.com/jeancsanchez/JcPlayer/tar.gz/refs/heads/master_v2","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247987285,"owners_count":21028895,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","audio","audio-player","gradle-dependency","java","kotlin","library","media","player","players","playlist","radio","songs"],"created_at":"2025-03-18T05:19:53.252Z","updated_at":"2025-04-09T06:12:29.367Z","avatar_url":"https://github.com/jeancsanchez.png","language":"Kotlin","funding_links":["https://patreon.com/jeancsanchez","https://www.patreon.com/jeancsanchez"],"categories":[],"sub_categories":[],"readme":"[![](https://jitpack.io/v/jeancsanchez/JcPlayer.svg)](https://jitpack.io/#jeancsanchez/JcPlayer)\n\u003c/br\u003e\u003c/br\u003e\n\n\u003ch1 align=center\u003e\n\u003cimg src=\"logo.png\" width=60%\u003e\n\u003c/h1\u003e\n\nA simple audio player for Android that you can plugin to your apps quickly get audio playback working.\n\u003c/br\u003e\u003c/br\u003e\n\n![](https://github.com/jeancsanchez/JcPlayer/blob/master_v2/sample/jcplayer_2.gif)\n\n## New features\n- Raw files\n- Asset Files\n- Custom layout\n\n## Tested files\n- http://xxxx/abc.mp3\n\n## Not tested URLs\n- http://xxxx/abc.m4a\n- http://xxxx:1232\n- http://xxxx/abc.pls\n- http://xxxx/abc.ram\n- http://xxxx/abc.wax\n- rtmp://xxxx\n- http://xxxx/abc.aspx\n- http://xxxx/abc.php\n- http://xxxx/abc.html\n- mms://xxxx\n\n## Support us\n\nYou can support us by becoming a patron on Patreon, any support is much appreciated.\n\n[![Patreon](https://c5.patreon.com/external/logo/become_a_patron_button.png)](https://www.patreon.com/jeancsanchez)\n\n\n## Gradle Dependency (Project level)\n```Gradle\nallprojects {\n\trepositories {\n\t\tjcenter()\n\t        maven { url \"https://jitpack.io\" }\n\t    }\n\t}\n```\n## Gradle Dependency (Module level) \n```Gradle\ndependencies {\n    // ... other dependencies\n     implementation 'com.github.jeancsanchez:JcPlayer:{version}'\n}\n```\n\n\n## Getting Started\nYou only need  a JcPlayerView on your Layout Activity/Fragment. All the controls and everything else are created by the player view itself.\n```xml\n\u003ccom.example.jean.jcplayer.view.JcPlayerView\n    android:id=\"@+id/jcplayer\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"/\u003e\n```\n\n## Code Setup\n#### Find your JcPlayerView xml and...\n```java\n    jcplayerView = (JcPlayerView) findViewById(R.id.jcplayerView);\n```\n\n### Option 1: Just init a playlist\n```java\n    ArrayList\u003cJcAudio\u003e jcAudios = new ArrayList\u003c\u003e();\n    jcAudios.add(JcAudio.createFromURL(\"url audio\",\"http://xxx/audio.mp3\"));\n    jcAudios.add(JcAudio.createFromAssets(\"Asset audio\", \"audio.mp3\"));\n    jcAudios.add(JcAudio.createFromRaw(\"Raw audio\", R.raw.audio));\n\n    jcplayerView.initPlaylist(jcAudios, null);\n```\n\n### Option 2: Initialize an anonymous playlist with a default title for all\n```java\n    jcplayerView.initAnonPlaylist(jcAudios);\n```\n\n### Option 3: Initialize an playlist with a custom title for all\n```java    \n    jcplayerView.initWithTitlePlaylist(urls, \"Awesome music\");\n```\n\n### Call the notification player where you want.\n```java\n    jcplayerView.createNotification(); // default icon\n```\nOR\n```java\n    jcplayerView.createNotification(R.drawable.myIcon); // Your icon resource\n```\n\n### How can I get callbacks of player status?\n```java\n    MyActivity implements JcPlayerManagerListener {\n        ....\n        jcplayerView.setJcPlayerManagerListener(this);\n        // Just be happy :D\n }\n```\n\n## Custom layout\nYou can customize the player layout by manipulating these attributes.\n```xml\n        app:next_icon\n\tapp:next_icon_color\n\tapp:pause_icon\n\tapp:pause_icon_color\n\tapp:play_icon\n\tapp:play_icon_color\n\tapp:previous_icon\n\tapp:previous_icon_color\n\tapp:progress_color\n\tapp:random_icon_color\n\tapp:repeat_icon\n\tapp:repeat_icon_color\n\tapp:seek_bar_color\n\tapp:text_audio_current_duration_color\n\tapp:text_audio_duration_color\n\tapp:text_audio_title_color\n```\n### Please, if you liked this project or help you to do your job, support me by being a sponsor \u003c3\n\n## TODO LIST ##\n* [x] Set custom layouts for player.\n* [ ] Add Instrumentation tests\n* [ ] Add unit tests.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeancsanchez%2Fjcplayer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeancsanchez%2Fjcplayer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeancsanchez%2Fjcplayer/lists"}