用 Kotlin 写了一个简单的音乐播放器

2017-05-31 17:30:34 +08:00
 koche

next-kotlin

下载试用

极简的音乐播放器,用户不需要看屏幕就可以轻松切歌,

我的目标是,减少用户的切歌次数,推荐用户想听歌曲。

项目用了经典的:MVP 框架 + Dagger + RxJava + Realm 欢迎大家试用以及提出建议!

4144 次点击
所在节点    分享创造
7 条回复
xiaket
2017-06-01 08:02:22 +08:00
赞 Ludovico Einaudi.
imxieke
2017-06-01 09:12:05 +08:00
小米 5 安卓 7.1 无法安装 报错原因:other
koche
2017-06-02 10:53:16 +08:00
@imxieke 谢谢反馈!的确安装包有问题,现在已经修复了。
moxiaonai
2017-06-02 11:01:38 +08:00
华为 mates 安卓 6.0 应用未安装
cloverii
2017-06-02 12:14:45 +08:00
红米 4 国际版 Android 6.0 App not installed
imxieke
2017-06-02 12:16:40 +08:00
@koche #3 可以安装 但是报错了 打开界面 一直 loading,,

```
io.reactivex.exceptions.OnErrorNotImplementedException: setDataSource failed: status = 0x80000000
at io.reactivex.internal.functions.Functions$14.accept(Functions.java:229)
at io.reactivex.internal.functions.Functions$14.accept(Functions.java:226)
at io.reactivex.internal.observers.LambdaObserver.onError(LambdaObserver.java:72)
at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.checkTerminated(ObservableObserveOn.java:276)
at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:172)
at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:252)
at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:109)
at android.os.Handler.handleCallback(Handler.java:754)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:160)
at android.app.ActivityThread.main(ActivityThread.java:6197)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:874)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:764)
Caused by: java.lang.RuntimeException: setDataSource failed: status = 0x80000000
at android.media.MediaMetadataRetriever.setDataSource(Native Method)
at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:69)
at com.junnanhao.next.data.model.Song$Companion.fromFile(Song.kt:114)
at com.junnanhao.next.data.model.Song$Companion.fromCursor(Song.kt:85)
at com.junnanhao.next.data.SongsRepository$scanMusic$1.apply(SongsRepository.kt:58)
at com.junnanhao.next.data.SongsRepository$scanMusic$1.apply(SongsRepository.kt:21)
at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:59)
at io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeOnObserver.onNext(ObservableSubscribeOn.java:63)
at io.reactivex.internal.operators.observable.ObservableScalarXMap$ScalarDisposable.run(ObservableScalarXMap.java:248)
at io.reactivex.internal.operators.observable.ObservableJust.subscribeActual(ObservableJust.java:35)
at io.reactivex.Observable.subscribe(Observable.java:10700)
at io.reactivex.internal.operators.observable.ObservableSubscribeOn$1.run(ObservableSubscribeOn.java:39)
at io.reactivex.Scheduler$1.run(Scheduler.java:138)
at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:59)
at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:51)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)

```
timothyye
2017-06-04 18:59:03 +08:00
哈哈,这个老头的钢琴曲我也喜欢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/364983

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX