android导航sdk | 百度地图api sdk-凯发k8官方旗舰厅

浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
语音播报
下载开发文档

为了能够让导航正常进行语音播报,还需要对tts模块进行初始化,百度导航sdk支持两种tts实现方案,即内置tts和外置tts。 导航sdk自带tts能力已经打包为一个独立的aar,命名为navitts.aar,可以将其以aar module引入集成app project,引入后,可以利用导航sdk提供的tts接口进行初始化。
当不需要导航sdk自带tts时,可以不进行集成,此时需要利用导航sdk支持外部tts的方式进行tts能力初始化。

1、内置tts
tts授权申请
(1)以sdk授权申请时相同账号,点击右上角的“控制台“,进入控制台界面,点击左侧导航栏“产品服务”,选择“语音技术”,然后点击创建应用。
(2)按步骤填入应用名称、包名等信息。
(3)点击立即创建会生成app id、api keysecret key,就是在开发中初始化tts时需要传入的参数
(4)申请 sn,在百度地图开放平台,点击控制台,左侧边栏点击"应用管理"-"我的应用",页面上找到"离线tts申请"点进去,然后点击"申请新语音key",选择应用对应的ak填写资料提交申请,申请成功后生成audio_key,该值为tts初始化的authsn参数。
内置 tts 初始化代码参考:
// 使用内置tts
bnttsinitconfig config =newbnttsinitconfig.builder()
.context(getapplicationcontext())
.appid(bndemoutils.getttsappid())
.appkey(bndemoutils.getttsappkey())
.secretkey(bndemoutils.getttssecretkey())
.authsn(bndemoutils.getauth())
.build();
baidunavimanagerfactory.getttsmanager().inittts(config);

需要状态的回调可以参考:

// 注册同步内置tts状态回调
baidunavimanagerfactory.getttsmanager().setonttsstatechangedlistener(
newibnttsmanager.ionttsplaystatechangedlistener(){
@override
publicvoidonplaystart(){
log.e("bnsdkdemo","ttscallback.onplaystart");
}
@override
publicvoidonplayend(string speechid){
log.e("bnsdkdemo","ttscallback.onplayend");
}
@override
publicvoidonplayerror(int code,string message){
log.e("bnsdkdemo","ttscallback.onplayerror");
}
}
);
外置tts

当初始化tts只传入ibnouterttsplayercallback时,表示将使用外置tts能力,不需要集成百度导航sdk自带的tts资源。

// 使用外置tts播报,与上面的内置tts播报接口二选一,不可同时存在
baidunavimanagerfactory.getttsmanager().inittts(newibnttsmanager.ibnouterttsplayercallback(){
/**
* 外部tts播报文案
* @param speech 播报文案
* @param bpreempt 是否抢占播报
*
* @return 执行成功1, 执行失败0
*/
@override
public int playttstext(string speech, int bpreempt,string speechid){
log.e(tag, speech);
return0;
}
/**
* 获取外部tts当前播报状态
*
* @return {@link player_state_not_init} {@link player_state_idle} {@link player_state_playing}
* {@link player_state_pause} {@link player_state_error}
*/
@override
public int getttsstate(){
return0;
}
});
注意:当使用外置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;// 错误

上一篇

导航实时数据获取

下一篇

传入外部gps数据

本篇文章对您是否有帮助?

网站地图