首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让SpeechKit和AVCaptureDevice相互配合

如何让SpeechKit和AVCaptureDevice相互配合
EN

Stack Overflow用户
提问于 2015-02-18 17:10:53
回答 1查看 509关注 0票数 3

我正在使用SpeechKit从Nuance转录文本从视频,因为我记录它。但是,当SpeechKit处于活动状态时,AVAudioSession会生成以下错误:

代码语言:javascript
复制
AVAudioSession.mm:646: -[AVAudioSession setActive:withOptions:error:]: Deactivating an audio session that has running I/O. All I/O should be stopped or paused prior to deactivating the audio session.

禁用SpeechKit可以让我录制和预览视频。启用它可以生成转录的文本,但不记录视频。

我已将一个示例项目放在网上:

https://github.com/jeffreality/iOSVideoTranscriber

我的目标是保存视频与音频,以及有一个转录。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-21 17:39:21

您可以将以下行移动到viewDidLoad:

代码语言:javascript
复制
#if ENABLE_TRANSCRIPTION

[SpeechKit setupWithID:@"Your ID"
                  host:@"dfo.nmdp.nuancemobility.net"
                  port:443
                useSSL:NO
              delegate:nil];
#endif

这确保在您在speechKit中创建自己的捕获会话时已经设置了viewDidAppear。

当识别器停止录制音频时,将调用SpeechKit委托方法recognizerDidFinishRecording。当检测到沉默时会自动调用它,在执行[voiceSearch stopRecording]时将手动调用它。当这种情况发生时,您自己的录音还没有完成,它需要时间将音频文件保存到磁盘,并且错误消息说所有i/o应该在停用音频会话之前停止。您可以通过sdk release audio session 1看到一个日志,我认为它正在关闭一个会话并释放它。所以我认为你应该在上面的方法中加上这个。

代码语言:javascript
复制
[[self.session.outputs[1] connectionWithMediaType:AVMediaTypeAudio] setEnabled:NO];

输出是您先前设置的AVCaptureMovieFileOutput,而连接是音频连接,这样做似乎会使错误消失。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28589579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档