用 flutter 做了一个听书软件

2023 年 11 月 9 日
 xiguadong

用户直接从后台拉到前台 然后杀死 app 会导致播放进度丢失 有什么好方法呢 不想定时任务保存记录

14656 次点击
所在节点    Android
27 条回复
iOCZS
2023 年 11 月 9 日
定时保存,实时保存,APP 退出回调保存,播放 widget deinit 保存
xiguadong
2023 年 11 月 9 日
@iOCZS 只能这样吗 定时存感觉太 lou 了
iOCZS
2023 年 11 月 9 日
@leetomlee123 那你就想错了,最简单直接的才是最健壮的。机器就适合做这种高频率的工作。你想啊,你音频播放,肯定有进度在实时刷新吧,有时候是个进度条啥的,那你刷新的时候赶紧同步不就好了。有时候你只是封面图转一下,但是播放进度其实还是有回调或者你可以定时去获取一下。
xiguadong
2023 年 11 月 9 日
@iOCZS 安卓就不能捕获后台拉到前台这个状态吗 只保存一次才优雅 强迫症的我接受不了
Oneup
2023 年 11 月 9 日
@iOCZS 赞同
sentinelK
2023 年 11 月 9 日
@leetomlee123 "安卓就不能捕获后台拉到前台这个状态吗"

flutter 不清楚,但是 Android 本身是可以的,对应的是生命周期中的 onResume 事件。
xiguadong
2023 年 11 月 9 日
@sentinelK 我的意思是后台拉到任务栏 而不是直接回到前台 触发不了 onresume
AlanStar
2023 年 11 月 9 日
Android 原生的 Activity 生命周期有 onPause()和 onResume(),flutter 可以通过 WidgetsBindingObserver 检测到前后台切换状态(后半段是查到的)。
关于播放进度,可以考虑这几个方案
1.用生命周期的方式来控制,比如 Activity 获得焦点和失去焦点时各就执行一次播放进度记录,这样就不会显得那么刻意。
2.提示用户关闭 APP 电量管理限制以使用类似 service 的机制监听用户的行为变化从而做记录。
后者可能会让人比较反感,不太建议
AoEiuV020JP
2023 年 11 月 9 日
软件开源不?有些兴趣,
听书是本地用户自行导入的书还是有提供资源?
daniel11
2023 年 11 月 9 日
我最近也是有个想法,也想问题是自用呀还是会发布,如果发布的话书的资源如何处理的,书的版权怎么处理
xiguadong
2023 年 11 月 9 日
@AoEiuV020JP http://116.204.64.93:5244/d/v1/tsl.apk
xiguadong
2023 年 11 月 9 日
@daniel11 解析别人网站的
xiguadong
2023 年 11 月 9 日
@AlanStar 不知道有没有 flutter 插件支持 不懂原生
jifengg
2023 年 11 月 9 日
前段时间也做了一个听故事的 flutter 项目,用的是 audioplayers 包,它有 onPositionChanged 可以监听进度变化。你可以在里面加个判断,距离上一次保存多少秒了就再保存一次。
xiguadong
2023 年 11 月 9 日
@jifengg 不喜欢这种
daotiangeng
2023 年 11 月 9 日
@leetomlee123 下不了,提示病毒
xiguadong
2023 年 11 月 9 日
xiguadong
2023 年 11 月 9 日
kosmosr
2023 年 11 月 9 日
不如问问 gpt ,我写 flutter 很多代码都是请教 gpt 写的
xiguadong
2023 年 11 月 9 日
@kosmosr 不知道如何描述

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

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

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

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

© 2021 V2EX