11 今梦 1天前 152次点击
Hello大家!
又来打扰大家了,梦仔伴唱又双叒叕迎来了一次正式版本。
这次主要给大家带来的功能是本地音乐导入。起初的想法是导入本地伴奏,因为在线音乐播放有时候放不出来,而且大家平时可能也有导入本地伴奏跟着学唱的需求。既然已经做了点击某句歌词单独播放的功能,那顺带把本地音乐也一起支持了,也算顺理成章。
在首页点击本地音乐资源,进入后顶部有两个Tab,默认选中本地音乐。点击导入按钮会自动扫描手机里的音频文件,默认过滤掉1分钟以下的碎片文件。理论上支持大部分音乐格式,不过我没全都试过,不太确定。导入过程遇到问题欢迎反馈,有机会我会修。
导入后点击更多按钮,可以一键匹配歌词和封面。网上能爬到的话一般都能对上。如果匹配不到或者匹配有误,也可以手动编辑。通过双击长按某首歌,可以打开操作菜单,里面有删除和编辑;也可以通过无障碍操作,用搓擦手势把导航切到“操作”,单指上滑或下滑听到“编辑”或“删除”,双击执行就可以了。
编辑页面提供了两种模式。一种是自由编辑,所有歌词放在一个编辑框里。另一种是逐句编辑,每一行歌词都是一个单独的编辑框,屏幕阅读器可以单独摸到某一行进行修改,回车换行。大家按自己习惯选择就好。
如果歌词没有时间戳,编辑页面右上角的更多菜单里有个自动匹配时间戳的功能,会根据歌曲时长自动分配好,不用先播放,方便后续调起歌词播报。右上角更多里还能补充发行时间等拓展信息,都是可选项,稳定性我也不敢保证,按需使用。
在本地音乐列表里,摸到一首歌双击即可播放。如果想进入歌词演唱页面,同样用搓擦手势把导航切到“操作”,单指下滑听到“进入详情”,点开就能进去,进行歌词播报等功能。这个无障碍操作属性在很多地方都有用,比如编辑歌词的Tab、本地歌词的Tab,以及搜索出来的歌曲列表。
另外在搜索结果页面,如果不开屏幕阅读器,只需要点击每一首歌右侧那个三角形的播放按钮即可。因为我觉得,如果每一首歌都要单独独立出一个播放和暂停的试听按钮,可能会增加大家滑动焦点的频率,体验不太好。所以我把试听功能都收纳到了无障碍操作属性里面,尽可能减少无障碍焦点的同时,操作起来也比较优雅。代码里对Android 12及以下不支持无障碍操作属性的设备,做了单独适配,应该是能够单独获取到播放按钮的,不过我没有低版本真机验证过,如果不行后续再调整。
这次还写了一个迷你播控栏。播放歌曲后它会出现在屏幕底部,默认是迷你状态,只显示封面、歌名、播放按钮和展开按钮,不占空间。展开后约占屏幕底部三分之一,包含封面、歌名歌手、歌词、进度滑块、快进快退、复制歌词、上一曲、暂停播放、下一曲、进入详情。播放器背景色会根据封面主色动态变化,带一点光晕,圆角也还算好看,无障碍和美观可以共存。
播控栏的展开和收起也支持无障碍操作,通过搓擦菜单来操作。我把封面、歌手和歌名合并成了一个焦点,防止焦点穿透或者焦点过多。歌词没有合并,单独独立出一个焦点,这样大家在唱的过程中,屏幕阅读器就会自动读出歌词的文本变化。
进度滑块支持无障碍操作,单指摸到后上滑或下滑调整进度,有细腻的震动反馈。暂停播放、收起展开、上一曲下一曲也都有震动反馈,增强操作手感,也为后续可能做的本地播放器打个底。
这个播控栏会一直悬浮在应用内。暂停播放超过一分钟,它会自动隐藏。
另外还做了一些无障碍优化,包括焦点合并、不规范标签修正、点击按钮后焦点跑偏的问题,以及部分UI重新梳理。
本来是个简单的歌词播报应用,做着做着把本地音乐和在线听歌都加进来了。确实不太稳定,毕竟没什么经验,还有很多奇怪的bug,比如搜索出来的歌第一次点播放偶尔没反应,需要再点一次,我也还没找到原因。整体勉强可用,大家多包涵。有朋友跟我说,他反而更多拿这个应用来听歌,而不是用来唱歌,有点本末倒置的感觉。
下载链接:
https://www.guangyapan.com/s/1916034436354117642_aeWhjBu726g3wbT0
备选 QQ邮箱中转站:
https://iwx.mail.qq.com/s?k=tzzK_GgAYbwzEFF7ap
对项目感兴趣的伙伴也可以加群讨论
627298458
v2.2.0 正式版更新日志
【新增功能】
1. 底部播控栏 — 首页常驻,背景色随封面变化,迷你/展开两种模式
2. 本地音乐 — 扫描设备音乐,播放试听,一键匹配歌词,文件夹导入,本地搜索
3. 歌曲编辑页 — 独立页面,逐句编辑、批量操作、时间戳开关
4. 自动算时间轴 — 纯文本歌词一键分配时间戳,无需先播放
5. 在线补充元数据 — 查询 MusicBrainz 获取发行日期和专辑类型
6. 数据备份重建 — 导出/导入 zip,包含设置、历史和歌词
7. 耳机中键自定义 — 单击/双击/三击独立配置
8. 拔出耳机自动暂停
9. 朗读歌词音频闪避 — 播报时自动降低伴奏音量
10. 引导页重构 — 图标+标题+描述风格,无障碍焦点优化
11. 文档更新 — 使用许可/隐私政策/使用帮助新增目录导航和 MusicBrainz 声明
【修复】
1. 文件夹导入歌曲被误删(严重)
2. 试听本地音频误删原始文件(严重)
3. 本地歌曲详情页封面丢失
4. Android 10+ 提取封面崩溃
5. 播控栏页面切换时消失或不恢复
6. 详情页返回后歌曲无法继续播放
7. 切后台回来播控栏背景变白板
8. 搜索结果误显示本地音乐播放状态
9. 设置页返回播控栏没歌名和封面
10. 深色封面下播控栏歌词看不清
11. 检查更新弹窗日志过长按钮被挤出
12. 音频焦点:来电/闹钟时不暂停
13. 引擎切换卡 30 秒
14. 切换语速/音色后预合成缓存不刷新
15. 无障碍焦点消失
16. 目录跳转后按返回直接退出
17. 本地歌词/音乐复选框选中状态朗读异常
18. 搜索按回车后键盘不收起
19. 屏幕阅读器长按本地音乐无法直接删除
【优化】
1. 切歌:防连点保护+自动重试+高亮跟随
2. 无障碍:音源切换焦点不丢失、编辑独立入口、搜索平台只播选中项
3. 顶部标签:药丸感样式,深色模式适配
4. 播控栏:按钮间距加大防误触,暂停超 60 秒自动隐藏
5. 歌词过滤:补全营销/改编编曲/录音工程师/混音母带等版权行
6. 安装包体积:引导页截图改用矢量图标。
点击加入梦仔伴唱交流群
好一个浅念歌词搜索啊。
v2.3.0更新
【修复】
· 修复 Android 10+ 系统下部分本地音乐无法播放的问题(Scoped Storage 权限限制导致文件可读性误判)
· 修复搜索结果列表点击播放或试听时跳转至错误歌曲的问题
· 修复播放状态机在 MediaPlayer 为空时状态异常的问题
【无障碍优化】
· 修复设置页开关状态播报缺失或重复朗读的问题
· 优化开关聚焦与点击时的播报文本,精简冗余信息
· 修复搜索平台选择状态不读“已选中/未选中”的问题
【其他优化】
· 修复部分场景下动画在后台持续运行导致的性能开销
· 统一平台配置管理,简化后续新增平台接入流程
https://www.guangyapan.com/s/1916399131896406100_aeWhjBu726g3wbT0