使用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];}
上一篇
下一篇
本篇文章对您是否有帮助?