zahraheydari / musicplayer Goto Github PK
View Code? Open in Web Editor NEWImplemented using Clean Arch, MVVM, LiveData, Room, Koin, Coil, Service, Notification and ExoPlayer
License: Apache License 2.0
Implemented using Clean Arch, MVVM, LiveData, Room, Koin, Coil, Service, Notification and ExoPlayer
License: Apache License 2.0
Did any one successfully build this project to an apk?
Hi,
I'm doing a self-promotion here :)
Please ignore/close it if you are not interested.
Would you like to use the wavy-slider in your app?
I think Android 13 uses this kind of slider for its media controls.
Demo.
Although it's for Jetpack Compose, there are ways to use Composables in Views and vice versa.
Hi, MusicPlayer need to call startForeground() when it use Foreground service.
2020-02-02 09:22:25.769 1534-1566/? E/ActivityManager: ANR in com.android.musicplayer
PID: 10683
Reason: Context.startForegroundService() did not then call Service.startForeground()
Load: 0.57 / 0.49 / 0.79
CPU usage from 29995ms to 0ms ago (2020-02-02 09:21:53.398 to 2020-02-02 09:22:23.393):
38% 1844/com.android.systemui: 32% user + 5.5% kernel / faults: 14150 minor 75 major
14% 696/surfaceflinger: 8.4% user + 6.3% kernel / faults: 581 minor 13 major
13% 666/[email protected]: 6% user + 7.5% kernel / faults: 38 minor
10% 1534/system_server: 4.9% user + 5.3% kernel / faults: 16839 minor 181 major
3.3% 3033/com.asus.launcher: 2.7% user + 0.5% kernel / faults: 11367 minor 116 major
3.1% 3082/com.android.vending: 2.4% user + 0.7% kernel / faults: 5838 minor 27 major
2.9% 251/crtc_commit:111: 0% user + 2.9% kernel
2.3% 258/kgsl_worker_thr: 0% user + 2.3% kernel
1.9% 6751/kworker/u16:15: 0% user + 1.9% kernel
1.8% 4262/com.google.android.googlequicksearchbox:search: 1.6% user + 0.2% kernel / faults: 7234 minor 2 major
1.7% 9625/kworker/u16:10: 0% user + 1.7% kernel
1.5% 9644/kworker/u16:22: 0% user + 1.5% kernel
1.5% 9631/kworker/u16:13: 0% user + 1.5% kernel
1.3% 671/[email protected]: 0.6% user + 0.7% kernel / faults: 86 minor
0.2% 1027/media.codec: 0.1% user + 0% kernel / faults: 4454 minor 19 major
0.9% 562/logd: 0.5% user + 0.4% kernel / faults: 9 minor 5 major
0.9% 2274/com.asus.services: 0.4% user + 0.4% kernel / faults: 1543 minor 74 major
0.9% 2839/adbd: 0.2% user + 0.7% kernel / faults: 1538 minor 1 major
0.7% 2018/com.android.phone: 0.3% user + 0.4% kernel / faults: 1220 minor 69 major
0.6% 7780/com.asus.nextappcore: 0.4% user + 0.2% kernel / faults: 1712 minor 1039 major
0.6% 6755/kworker/u16:16: 0% user + 0.6% kernel
0.6% 9297/com.google.android.gm: 0.3% user + 0.2% kernel / faults: 1130 minor 3 major
0.6% 252/crtc_event:111: 0% user + 0.6% kernel
0.4% 2612/com.google.android.gms: 0.3% user + 0.1% kernel / faults: 316 minor
0.4% 9622/kworker/u16:5: 0% user + 0.4% kernel
0.4% 3175/com.lilithgame.hgame.gp.tw:lilith_sdk: 0.2% user + 0.1% kernel / faults: 1060 minor
0.3% 2455/com.google.android.gms.persistent: 0.2% user + 0.1% kernel / faults: 691 minor
0.3% 146/kswapd0: 0% user + 0.3% kernel
0.3% 563/servicemanager: 0.1% user + 0.2% kernel
0.3% 695/lmkd: 0% user + 0.3% kernel
0.3% 3141/com.facebook.katana: 0.3% user + 0% kernel / faults: 87 minor
0.3% 8407/kworker/1:6: 0% user + 0.3% kernel
0.3% 9925/kworker/0:6: 0% user + 0.3% kernel
0.3% 22551/com.android.chrome:sandboxed: 0% user + 0.2% kernel / faults: 1128 minor 273 major
0.3% 9714/kworker/3:0: 0% user + 0.3% kernel
0.2% 7/rcu_preempt: 0% user + 0.2% kernel
0% 1019/media.extractor: 0% user + 0% kernel / faults: 2514 minor 22 major
0.2% 3894/jp.naver.line.android: 0.2% user + 0% kernel / faults: 18 minor
0.2% 9977/kworker/2:0: 0% user + 0.2% kernel
0.2% 19548/com.facebook.orca:videoplayer: 0.1% user + 0.1% kernel / faults: 1 minor
0.2% 21131/kworker/u17:0: 0% user + 0.2% kernel
0.2% 10/rcuop/0: 0% user + 0.2% kernel
0.2% 102/system: 0% user + 0.2% kernel
0% 1831/com.google.android.apps.inputmethod.zhuyin: 0% user + 0% kernel / faults: 1024 minor 77 major
0.2% 29/rcuop/2: 0% user + 0.2% kernel
0.2% 2723/sugov:0: 0% user + 0.2% kernel
0% 4470/com.asus.deskclock:ui: 0% user + 0% kernel / faults: 216 minor 328 major
0.1% 1//init: 0.1% user + 0% kernel / faults: 157 minor
0.1% 665/[email protected]: 0% user + 0.1% kernel / faults: 7 minor
0% 1982/com.qualcomm.qti.telephonyservice: 0% user + 0% kernel / faults: 1128 minor 84 major
0% 2034/com.qualcomm.qtil.aptxui: 0% user + 0% kernel / faults: 1281 minor 303 major
0.1% 2944/com.android.nfc: 0.1% user + 0% kernel / faults: 1039 minor 84 major
0.1% 681/[email protected]: 0% user + 0.1% kernel / faults: 43 minor
0.1% 962/jbd2/dm-2-8: 0% user + 0.1% kernel
0.1% 1223/msm_irqbalance: 0% user + 0.1% kernel
0% 1998/org.ifaa.andr
There is a bug that does not play with the following error when adding music and playing.
The file exists in that path as well.
Changing compileSdkVersion / targetSdkVersion to 28 works fine.
( In addition, the UI should be marked for play failures.)
2019-12-05 16:34:47.018 12149-12149/com.android.musicplayer E/com.android.musicplayer.utils.player.logger.PlayerEventLogger: internalError [0.07, loadError]
com.google.android.exoplayer2.upstream.FileDataSource$FileDataSourceException: java.io.FileNotFoundException: /storage/emulated/0/media/audio/ringtones/NasLifeisBichRasenMixTonollamada.m4a: open failed: EACCES (Permission denied)
at com.google.android.exoplayer2.upstream.FileDataSource.open(FileDataSource.java:73)
at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:250)
at com.google.android.exoplayer2.upstream.TeeDataSource.open(TeeDataSource.java:53)
at com.google.android.exoplayer2.upstream.cache.CacheDataSource.openNextSource(CacheDataSource.java:479)
at com.google.android.exoplayer2.upstream.cache.CacheDataSource.open(CacheDataSource.java:308)
at com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:83)
at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:885)
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:381)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
Caused by: java.io.FileNotFoundException: /storage/emulated/0/media/audio/ringtones/NasLifeisBichRasenMixTonollamada.m4a: open failed: EACCES (Permission denied)
at libcore.io.IoBridge.open(IoBridge.java:496)
at java.io.RandomAccessFile.(RandomAccessFile.java:289)
at java.io.RandomAccessFile.(RandomAccessFile.java:152)
at com.google.android.exoplayer2.upstream.FileDataSource.open(FileDataSource.java:65)
at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:250)
at com.google.android.exoplayer2.upstream.TeeDataSource.open(TeeDataSource.java:53)
at com.google.android.exoplayer2.upstream.cache.CacheDataSource.openNextSource(CacheDataSource.java:479)
at com.google.android.exoplayer2.upstream.cache.CacheDataSource.open(CacheDataSource.java:308)
at com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:83)
at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:885)
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:381)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied)
at libcore.io.Linux.open(Native Method)
at libcore.io.ForwardingOs.open(ForwardingOs.java:167)
at libcore.io.BlockGuardOs.open(BlockGuardOs.java:252)
at libcore.io.ForwardingOs.open(ForwardingOs.java:167)
at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:7255)
at libcore.io.IoBridge.open(IoBridge.java:482)
at java.io.RandomAccessFile.(RandomAccessFile.java:289)
at java.io.RandomAccessFile.(RandomAccessFile.java:152)
at com.google.android.exoplayer2.upstream.FileDataSource.open(FileDataSource.java:65)
at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:250)
at com.google.android.exoplayer2.upstream.TeeDataSource.open(TeeDataSource.java:53)
at com.google.android.exoplayer2.upstream.cache.CacheDataSource.openNextSource(CacheDataSource.java:479)
at com.google.android.exoplayer2.upstream.cache.CacheDataSource.open(CacheDataSource.java:308)
at com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:83)
at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:885)
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:381)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
See attached video:
You need to add:
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
But even then, when I try to start playing, it doesn't do anything:
@ZahraHeydari once look this memory leak I attached a screenshot.
Hi, I encountered the following error when executing the project
D:\Android\MusicPlayer\app\build\tmp\kapt3\stubs\debug\com\android\musicplayer\data\model\Song.java:8: error: Multiple fields have the same columnName: duration. Field names: duration, duration.
public final class Song extends com.android.player.model.ASong implements android.os.Parcelable {
^
After trying several methods are still unable to run the project order:
Did I miss something?
A music player is supposed to only read...
What's the license of this repository?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.