V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiguadong
V2EX  ›  Android

用 flutter 做了一个听书软件

  •  
  •   xiguadong · 2023 年 11 月 9 日 · 13687 次点击
    这是一个创建于 806 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    flutter 不清楚,但是 Android 本身是可以的,对应的是生命周期中的 onResume 事件。
    xiguadong
        7
    xiguadong  
    OP
       2023 年 11 月 9 日
    @sentinelK 我的意思是后台拉到任务栏 而不是直接回到前台 触发不了 onresume
    AlanStar
        8
    AlanStar  
       2023 年 11 月 9 日
    Android 原生的 Activity 生命周期有 onPause()和 onResume(),flutter 可以通过 WidgetsBindingObserver 检测到前后台切换状态(后半段是查到的)。
    关于播放进度,可以考虑这几个方案
    1.用生命周期的方式来控制,比如 Activity 获得焦点和失去焦点时各就执行一次播放进度记录,这样就不会显得那么刻意。
    2.提示用户关闭 APP 电量管理限制以使用类似 service 的机制监听用户的行为变化从而做记录。
    后者可能会让人比较反感,不太建议
    AoEiuV020JP
        9
    AoEiuV020JP  
       2023 年 11 月 9 日
    软件开源不?有些兴趣,
    听书是本地用户自行导入的书还是有提供资源?
    daniel11
        10
    daniel11  
       2023 年 11 月 9 日
    我最近也是有个想法,也想问题是自用呀还是会发布,如果发布的话书的资源如何处理的,书的版权怎么处理
    xiguadong
        11
    xiguadong  
    OP
       2023 年 11 月 9 日
    @AoEiuV020JP http://116.204.64.93:5244/d/v1/tsl.apk
    xiguadong
        12
    xiguadong  
    OP
       2023 年 11 月 9 日
    @daniel11 解析别人网站的
    xiguadong
        13
    xiguadong  
    OP
       2023 年 11 月 9 日
    @AlanStar 不知道有没有 flutter 插件支持 不懂原生
    jifengg
        14
    jifengg  
       2023 年 11 月 9 日
    前段时间也做了一个听故事的 flutter 项目,用的是 audioplayers 包,它有 onPositionChanged 可以监听进度变化。你可以在里面加个判断,距离上一次保存多少秒了就再保存一次。
    xiguadong
        15
    xiguadong  
    OP
       2023 年 11 月 9 日
    @jifengg 不喜欢这种
    daotiangeng
        16
    daotiangeng  
       2023 年 11 月 9 日
    @leetomlee123 下不了,提示病毒
    xiguadong
        17
    xiguadong  
    OP
       2023 年 11 月 9 日
    xiguadong
        18
    xiguadong  
    OP
       2023 年 11 月 9 日
    kosmosr
        19
    kosmosr  
       2023 年 11 月 9 日 via iPhone
    不如问问 gpt ,我写 flutter 很多代码都是请教 gpt 写的
    xiguadong
        20
    xiguadong  
    OP
       2023 年 11 月 9 日
    @kosmosr 不知道如何描述
    lin7946
        21
    lin7946  
       2023 年 11 月 9 日   ❤️ 4
    看完下来就看到 OP 不想/不喜欢/不知道/6 .....
    yyyyhere
        22
    yyyyhere  
       2023 年 11 月 9 日
    重写 didChangeAppLifecycleState 方法
    K2
        23
    K2  
    PRO
       2023 年 11 月 10 日
    最近在用这个作者的听书 app ,也有 android 版本。好处是可以直接导入 epub 或 txt ,然后用微软语音朗读,能实时保存进度,还支持音译后离线播放。
    K2
        24
    K2  
    PRO
       2023 年 11 月 10 日
    ltq918
        25
    ltq918  
       2023 年 11 月 10 日 via Android
    Android 中似乎有一个 onTaskRemoved()
    xunqin
        26
    xunqin  
       2023 年 11 月 10 日
    @K2 感谢
    xiguadong
        27
    xiguadong  
    OP
       2023 年 11 月 10 日
    @ltq918 ok 研究下
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1124 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:55 · PVG 07:55 · LAX 15:55 · JFK 18:55
    ♥ Do have faith in what you're doing.