AVAudio真机播放无法录音,真机播放音量太小

1,由于没有添加控制输入输出流的AVAudioSession,真机播放无法录音;2.真机播放的音量很小;

一、问题1:添加AVAudioSession, 这里由于录制和play都需要,所以设置Category为AVAudioSessionCategoryPlayAndRecord:

 NSError *categoryError = nil;

AVAudioSession *audioSession = [AVAudioSession sharedInstance];

[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:&categoryError];

[audioSession setActive:YES error:&categoryError];

二、问题2:真机播放音量太小,有人说设置AudioSession属性里把sizeof设成1可行:

 //UInt32 doChangeDefault = 1;

//AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof(doChangeDefault), &doChangeDefault);

使用后的确可以,但是ios7.0之后,AudioSessionSetProperty已经被弃用了,于是乎

~keep looking for~~~

在stackoverflow上,一位朋友 说 audioSession的 属性基本 迁移到 AVFoundation里了, 建议我们多使用 AVFoundation里的API。

NSError *audioError = nil;

BOOL success = [audioSession overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&audioError];

if(!success) {

NSLog(@"error doing outputaudioportoverride - %@", [audioError localizedDescription]);

}

你可能感兴趣的:(AVAudio真机播放无法录音,真机播放音量太小)