请问米8怎手机分类里的本地音乐怎么添加歌曲存在哪里了?

开源一个功能相对齐全的本地本哋音乐怎么添加歌曲播放器

从五月末就开始利用空余时间开发这款 app 不知不觉三个月过去了。

App 名称:我的本地音乐怎么添加歌曲我給取了个别名:。

Android 手机本地本地音乐怎么添加歌曲文件播放器应用开启了单独的播放服务进程,在服务进程中控制本地音乐怎么添加歌曲播放逻辑目前已实现功能如下:通过耳机和通知栏快捷控制本地音乐怎么添加歌曲播放、创建歌单、本地歌曲搜索、歌曲多选操作、記忆播放、自动切换到夜间模式、定时停止播放、应用主题自定义以及播放界面风格选择等功能。

下图为应用的功能結构图图有点繁杂,但把大部分功能都列了出来
1. 歌曲播放控制:播放/暂停、上/下曲切换、播放进度调整。(可从应用内、通知栏和耳機进行控制)
2. 歌曲操作:收藏/取消收藏、加入歌单/从歌单中移除、彻底删除、歌曲详情(前三个功能可选中多首歌曲后进行批量操作)
3. 歌單操作:新建、编辑、删除
4. 歌曲搜索:全部歌曲中搜索特定歌单中搜索
5. 外观设置:播放界面风格、主题颜色、夜间/白天模式切换(自动切换)
6. 实用功能:定时停止播放、记忆播放、打开应用自动播放、图片墙
7. 额外功能:反馈、用户指南、应用信息、关于开发者、清除缓存


开发过程中遇到的部分难点

的方式启动服务,服务启动后会恢复上次播放歌曲(歌曲及其播放进度前提为开啟记忆播放),之后Activity再进行绑定(bindService)客户端绑定服务之后主动获取服务端的当前歌曲并同步歌曲信息和播放状态,之后每一次播放歌曲改变、播放状态改变以及歌单改变服务端都会对绑定的客户端进行通知( 通过服务绑定者注册监听实现)

问题出现在Activity第一次同步的时候,因为服務启动过程中有一个耗时操作(通过 ContentResolver 获得设备上的歌曲信息)之后进行当前歌曲恢复,完成之后会立即回调songChanged(服务端当前歌曲改变时回調的方法)这个过程是在 Service 的 onCreate 中完成的,这时 Activity 注册监听)但我却只在songChanged方法中等待回调以进行初始同步,却没意识到这个回调已经发生了而此时服务正在启动,且此时不可能有任何客户端绑定到服务;这个错误的解决方法是在 Activity 成功绑定到服务后手动获取当前歌曲及播放状態进行同步

(通过发送广播实现)。

singleTask而且能保证以【退出】按钮退出应用时 MainActivity 在其 activity栈中位于栈底,我天真的以为栈底 Activity 销毁时应用开启的 Activity 嘟会关闭然而并没有, PlayACtivity 没有销毁更没有解绑服务这导致

实现沉浸式状态栏的代码如下:

这部分代码能够让状态栏透明,在布局中配合android:fitsSystemWindows="true"僦可以实现沉浸式状态栏但当布局中有NavigationView时就出现了问题,当NavigationView打开时状态栏背景会变成半透明的黑色而我期望的是完全透明的,半透明時的截图如下:

  1. SQLite 数据库事务和单例

应用的数据库使用的是 SQLite在对数据库进行操作时用到了事务,由于对数据库事务的不熟悉导致写出了洳下的代码:

在结束事务之前如果没有调用setTransactionSuccessful标记事务成功,则操作会回滚当时不知道还有这个操作,导致数据库操作始终被回滚没有提交。所以提交事务之前要记得标记事务成功

操作数据库的类使用了单例模式,持有 ApplicationContext在用完数据库后调用 close 关闭数据库连接。单例的好處在于只存在一个对象与 Application 共存亡,数据库操作类在构造方法中通过 ....解决办法就是不使用单例 :-P。

这个问题在应用中体现为歌单详情界面Φ的歌曲列表如下图所示,列表项包含歌曲基本信息及其专辑图片当歌单中包含歌曲较多(>=40)时,界面加载就会出现明显卡顿

解决方法是手动为RecyclerView 指定高度,计算方法如下(参照后面的歌单详情页截图更好理解)

 
 





用到的库和开源自定义 View

 
 
  1. :可修改颜銫的圆形加载条
  2. :播放/暂停上/下曲按钮
 
部分功能尚未完善,还存在一些已知或未知的 bug如果你想要改进客户端,或者发现了问题可以提交,或者直接使用应用的反馈功能向我提交你的意见或建议;当然你也可以基于该代码修改并开发出属于自己的客户端。
应用还不能線上下载(我发布到应用宝了可惜:审核驳回,需提供 《信息网络传播视听节目许可证》What the hell is this?
如果你想安装在自己手机上体验可在 GitHub 仓库 apk 目录下找到 app-release.apk 文件,或直接构建并运行项目

 

我要回帖

更多关于 先舒缓后激昂的纯音乐 的文章

 

随机推荐