为了能够让导航正常进行语音播报,还需要对tts模块进行初始化,百度导航sdk支持两种tts实现方案,即内置tts和外置tts。
使用tts语音播报功能需要额外申请ak,申请步骤见【工程配置-sdk和tts授权申请配置】详细介绍
当使用内置tts接口初始化时,表示将使用内置tts模块,此时app工程需要集成tts module,同时设置申请配置过的tts appid。
在进入导航之前需要初始化tts语音,初始化方法是:
/*** @param activity activity引用* @param sdcardrootpath sd卡根路径* @param appfoldername app 文件夹名称* @param appid app id* @param outttslistener 外部设置的tts监听器,也就是外部tts方案*/voidinittts(final activity activity, final string sdcardrootpath, final string appfoldername, final string appid, final ibnouterttsplayercallback outttslistener);"
示例如下:
注意:参数appid是在语音平台申请的id。(具体申请请见配置页面)
// 注册同步内置tts状态回调baidunavimanagerfactory.getttsmanager().setonttsstatechangedlistener(newibnttsmanager.ionttsplaystatechangedlistener(){@overridepublicvoidonplaystart(){log.e("bnsdkdemo","ttscallback.onplaystart");}@overridepublicvoidonplayend(string speechid){log.e("bnsdkdemo","ttscallback.onplayend");}@overridepublicvoidonplayerror(int code,string message){log.e("bnsdkdemo","ttscallback.onplayerror");}});// 注册内置tts 异步状态消息baidunavimanagerfactory.getttsmanager().setonttsstatechangedhandler(newhandler(looper.getmainlooper()){@overridepublicvoidhandlemessage(message msg){log.e("bnsdkdemo","ttshandler.msg.what=" msg.what);}});
外置tts初始化
baidunavimanagerfactory.getttsmanager().inittts(mibnouterttsplayercallback );
注意:当使用外置tts能力时,一定要正确返回getttsstate()接口的返回值,百度导航sdk内部将根据该值判断当前tts模块状态,是否能够进行播报,其返回值类型如下:
ibnttsmanager.ibnouterttsplayercallback.player_state_not_init;//未初始化ibnttsmanager.ibnouterttsplayercallback.player_state_idle;// 空闲ibnttsmanager.ibnouterttsplayercallback.player_state_playing;// 播放中ibnttsmanager.ibnouterttsplayercallback.player_state_pause;// 暂停ibnttsmanager.ibnouterttsplayercallback.player_state_error;// 错误
上一篇
下一篇
本篇文章对您是否有帮助?