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

Android 封装工具类问题,请求大佬解答

  •  
  •   nurupo · 2021-09-01 15:11:23 +08:00 · 3728 次点击
    这是一个创建于 958 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目需要做一个简单的离线中文语音朗读功能,我参照 https://www.jianshu.com/p/fb48df91fddf?from=singlemessage 封装了一个工具类,可以 onClick 方法里调用 play 方法实现播放。 我现在想实现进入 Activity 自动播放语音,所以在 onStart 方法里调用 play 方法,发现播放不了,必须先在 onEvent 方法里完成初始化。

    5 条回复    2021-09-01 16:01:35 +08:00
    auhah
        1
    auhah  
       2021-09-01 15:20:37 +08:00
    应该是初始化完成以后才能播放吧。。
    另外这个工具类搞了个单例,传的时候不要传 activity.this 或者 fragment.context 进去。。直接就是一个内存泄露。。。。
    nurupo
        2
    nurupo  
    OP
       2021-09-01 15:27:47 +08:00
    @auhah 感谢大佬解答,我在 onClick 方法里调用是没问题的
    nurupo
        3
    nurupo  
    OP
       2021-09-01 15:30:48 +08:00
    @auhah 如何判断初始化完成,在 Activity 自动播放?
    auhah
        4
    auhah  
       2021-09-01 15:40:44 +08:00
    因为点击的时候早就初始化成功了,这个初始化应该在一秒内可以完成。。

    case SpeechConstants.TTS_EVENT_INIT:
    // 初始化成功回调
    主要就是要在调用 init 之后的 onEvent 的这个事件之后再调用 play 方法。。。方案有很多,加个回调什么的都行,或者提前初始化之类的。或者改一下工具类,play 时候检测一下初始化状态,如果没初始化完成就把要 play 的内容存起来,初始化完成以后再 play 一下。。。
    nurupo
        5
    nurupo  
    OP
       2021-09-01 16:01:35 +08:00
    @auhah 感谢提供思路,问题解决了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1315 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:36 · PVG 01:36 · LAX 10:36 · JFK 13:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.