Mo *_*and 6 objective-c avaudiorecorder ios avaudiosession
我AVAudioPlayer在某些情况下有问题.首先我的录音机工作正常.但是在VOIP呼叫和播放响铃built_in_Speaker并且多次使用音频会话后,挂断电话后,我首先无法录制带有声音的音频!但在第二次,每件事情都很好.
问题
条件是我提到我的音频是记录但没有声音!
我想知道它可能发生在哪种情况?
self.audioSession = [AVAudioSession sharedInstance];
NSError *err = nil;
[self.audioSession setCategory :AVAudioSessionCategoryPlayAndRecord error:&err];
if(err){
NSLog(@"audioSession: %@ %d %@", [err domain], [err code], [[err userInfo] description]);
return;
}
BOOL preparedToRecord = [self.audioRecorder prepareToRecord];
__block BOOL recordStarted = NO;
err = nil;
[self.audioSession setActive:YES error:&err];
if(err){
NSLog(@"audioSession: %@ %d %@", [err domain], [err code], [[err userInfo] description]);
return;
}
if (preparedToRecord){
recordStarted = [self.audioRecorder record];
}
Run Code Online (Sandbox Code Playgroud)
解决了
我已经找到了这个问题的原因。我有addObserve我自己来捕获AVAudioSession的通知,并检查AudioSession中断/RoutChanging!问题是在我打电话后,我尝试更改到扬声器的音频路由,但是为 AudioRoutChanging 通知添加观察的类尝试阻止这种情况。因此音频会话路由每秒都在变化,无法录制音频。
结论 你应该这样做来录制音频:
1)确定许可
2)[self.audioSession setActive:YES error:&err];
3)[self.audioSession setCategory :AVAudioSessionCategoryPlayAndRecord error:&err];
Run Code Online (Sandbox Code Playgroud)
4)确保您的 路线在录制过程中不会改变。
4)确定您的目标补丁
| 归档时间: |
|
| 查看次数: |
289 次 |
| 最近记录: |