AndroidR车机TextToSpeech音频焦点异常问题分析
一、引言
文章《Android车机之TextToSpeech》介绍了TextToSpeech的使用,当前较多座舱系统语音服务都接入了原生TextToSpeech接口调用。
我司自研语音TTS服务,也接入了此TTS接口调用,对外提供TextToSpeech能力,播报时由客户端Client自行管理音频焦点,播报前申请音频焦点,播放结束释放音频焦点。
二、问题
JIRA ID -11864 【内销车问题】语音无法使用
三、分析
应用端收到了疲劳驾驶的信号,去申请ALARM类型焦点(音频矩阵中较高优先级)播报“您已疲劳驾驶,请停车休息”的安全告警类型TTS,正好开始播的时候(即UtteranceProgressListener回调onStart的时候),pid1830(com.***.tts)就被系统kill了,导致UtteranceProgressListener的回调onStop、onError、onDone等方法不回调,所以客户端没有释放焦点。
而Car服务Audio中当前持有音频焦点的应用又是TTS客户端,该进程并没有异常退出,所以认