HarmonyOS 在做文字转语音功能时,文字转语音播放完成的回调中无法修改回调外部变量的值

文字转语音播放完成的回调中,无法修改回调外部变量的值。

.onClick(() => {
  let content = '万金油收款2377.78元,加油量344.41升'
  //'收到一笔万金油个人加气订单,数量203.05公斤,金额974.64元'

  let speakListener: textToSpeech.SpeakListener = {
    onStart(requestId: string, response: textToSpeech.StartResponse) {
    },
    onComplete(requestId: string, response: textToSpeech.CompleteResponse) {
      if (response.type === 1) {
        // 此处回调里无法调用到外部属性变量
        this.isPlaying = false
        this.textText = '播放结束'
        Logger.info(this.texttext)
      }
    },
    onStop(requestId: string, response: textToSpeech.StopResponse) {
    },
    // 返回音频流
    onData(requestId: string, audio: ArrayBuffer, response: textToSpeech.SynthesisResponse) {
    },
    onError(requestId: string, errorCode: number, errorMessage: string) {
    }
  }
})
HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

建议使用AppStorage来修改外部属性的值,示例如下:

//声明变量
@StorageLink('isPlaying ') flag: boolean = false
@StorageLink('textText ') flag: string= ''

if (response.type === 1) {
  // 此处回调里无法调用到外部属性变量
  AppStorage.set('isPlaying ', true)
  AppStorage.set('textText ', 播放结束)
  Logger.info(AppStorage.get('textText '))
}
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 文字转语音无法播报
51浏览 • 1回复 待解决
文本转语音方法有哪些?
388浏览 • 1回复 待解决
HarmonyOS 文本转语音stop后如何续播
32浏览 • 1回复 待解决
HarmonyOS 组件渲染完成之后
37浏览 • 1回复 待解决
HarmonyOS 语音播放问题
32浏览 • 1回复 待解决
webview静态资源下载完成
1683浏览 • 1回复 待解决
HarmonyOS 如何实现语音助手功能
319浏览 • 1回复 待解决
HarmonyOS Slider问题
32浏览 • 1回复 待解决
HarmonyOS 关于语音发送功能
25浏览 • 1回复 待解决
HarmonyOS pcm语音文件播放异常
34浏览 • 1回复 待解决
lottile动画加载完成不调用
1016浏览 • 1回复 待解决