使用sdk内置百度tts语音播报功能需要导入libbnttscomponentsdk.a静态库,并且需要对应用进行授权验证才能够使用,因此需要主动注册应用相关信息。
模拟器不能使用sdk内置的百度tts语音播报功能。
tts授权申请
申请tts授权前需先申请sdk授权,sdk授权。
tts 鉴权
代码参考:
// 使用内置tts[bnaviservice_instance authorizettsappid:tts_app_idapikey:tts_api_keysecretkey:tts_secret_keycompletion:^(bool suc){nslog(@"authorizetts ret = %d",suc);}];
开发者也可以选择不使用sdk提供的tts sdk进行播报,可以使用外部tts播报。如果是这种情况,把libbnopenttscomponent.a和baiduttssdk.bundle从项目工程中去掉。该能力相关接口和回调在bnsoundprotocol.h中。
使用外置tts步骤:
(1)设置delegate,进入导航前设置,可以启动app后设置。
[bnaviservice_sound setsounddelegate:self];
(2)实现以下回调:
/*** tts文本回调*/-(void)onplaytts:(nsstring*)text {//调用外置的tts进行文本播报[self playtext:text];}/*** tts音效回调* @param type 音效类型* @param filepath 音频文件路径*/-(void)onplayvoicesound:(bnvoicesoundtype)type filepath:(nsstring*)filepath {//filepath为mp3音频文件的目录,可以使用avplayer进行mp3文件播报[self playvoicesound:filepath];}/*** 使用自定义的tts播报,需要在此回调外部tts是否正在播报,sdk内部会根据播报状态判断是否继续回调文案* @return 返回自定义tts是否在播报*/-(bool)ttsisplaying {//返回外置tts是否正在播报return[self isplaying];}
上一篇
下一篇
本篇文章对您是否有帮助?