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) {
    }
  }
})
阅读 680
1 个回答

建议使用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 '))
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进