[avas] AVAudioSession.mm:1074:-[AVAudioSession setActive:withOptions:error:]: Deactivating an audio session that has running I/O
来源:互联网 发布:晋江网络 编辑:程序博客网 时间:2024/05/22 08:16
关于最近使用讯飞语音识别时出现的问题。
因为需求,打算使用识别的实时返回结果的方式,进行类似同传的效果(一边识别一边返回结果,然后把返回结果进行翻译,并通过语音合成播放出来)的时候,出现了下面的错误:
[avas] AVAudioSession.mm:1074:-[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.
字面意思大致是说不能同时播放与录音。
这就尴尬了,这大致是由于setActive没有设置为 true 导致的。讯飞源码不开放,所以没法在里面实时修改。
这时想到使用分类重写
-(BOOL)setActive:(BOOL)active withOptions:(AVAudioSessionSetActiveOptions)options error:(NSError*_Nullable__autoreleasing*)outError {
return NO;
}
我认为的分类是可以覆盖super class的方法,所以新建分类 LSAudioSession,继承于 AVAudioSession。
.h
#import <AVFoundation/AVFoundation.h> //这里默认是AVFAudio/AVFAudio.h,但是这样会有 not found 的错误,既然AVFAudio/AVFAudio.h 是继承于AVFoundation,所以改成AVFoundation/AVFoundation.h
@interfaceAVAudioSession (LSAudioSession)
@end
.m
#import "AVAudioSession+LSAudioSession.h"
@implementationAVAudioSession (AddAction)
-(BOOL)setActive:(BOOL)active withOptions:(AVAudioSessionSetActiveOptions)options error:(NSError*_Nullable__autoreleasing*)outError {
return YES; //默认是 NO,修改成 YES
}
@end
以上.
然后就是让项目跑起来!
测试 -> 完美实现。
- [avas] AVAudioSession.mm:1074:-[AVAudioSession setActive:withOptions:error:]: Deactivating an audio session that has running I/O
- iOS录音错误:Deactivating an audio session that has running I/O
- AVAudioSession
- AVAudioSession
- AVAudioSession
- AVAudioSession
- AVAudioSession
- AVAudioSession
- AVAudioSession
- AVAudioSession
- AVAudioSession
- AVAudioSession
- [iOS]AVAudioSession中的 setCategory: withOptions 的参数详解
- AVAudioSession样式
- AVAudioSession说明
- AVAudioSession bluetooth
- AVAudioSession 1
- AVAudioSession的Category
- 关于打包静态库
- 微软出现WebSocket closed unexpectedly错误
- 多线程【转】
- runloop
- 乔布斯诠释 OOP
- [avas] AVAudioSession.mm:1074:-[AVAudioSession setActive:withOptions:error:]: Deactivating an audio session that has running I/O
- pip安装软件时出现Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build*的解决方案
- 51nod 1494 选举拉票&&cf458C
- 值得推荐的C/C++框架和库 (真的很强大)
- python自动化测试软件&工具安装说明
- 10.14考试总结
- springmvc请求一次,访问多个controller中的方法
- Linux 添加用户相关操作
- 什么是语法糖?