问题简述:
Unity发布的xcode工程(已接入科大讯飞的语音识别),在语音识别操作结束后,游戏声音就莫名消失了。
解决方式为:重写AVAudioSession的setAction方法。
因为AVAudioSession是AVFAudio.Framework中的类,所以无法直接在源码中改写。所以只能新建一个类来重写。步骤如下:
1.新建AddAction.m和AddAction.h文件,代码如下:
AddAction.h:
#import <AVFoundation/AVFoundation.h>
@interface AVAudioSession (AddAction)
@end
AddAction.m:
#import "AddAction.h"
@implementation AVAudioSession (AddAction)
- (BOOL)setActive:(BOOL)active withOptions:(AVAudioSessionSetActiveOptions)options error:(NSError * _Nullable __autoreleasing *)outError {
return YES;//强行返回true
}
@end
2.重新Clean工程,然后问题就解决了。
具体产生这个问题的原因,我也只有一个模糊的概念,不能下定论,所以这里就不写出来了。