音频小结

要看AVAudioSession底层API解释的可以看我另一篇文章AVAudioSession。

这篇文章主要记载我使用音频功能期间的小结:

1、音频如果需要后台录制或者播放功能需要勾选BackgroundMode中的第一项

2、info中要添加隐私权限获取key:

Privacy - Microphone Usage Description                          麦克风权限

3、通过AVAuthorizationStatus类获取麦克风或摄像头的授权状态,若未授权可以使用requestAccessForMediaType:方法向用户请求设备权限。

4、获得用户授权后,设置AVAudioSession:

        1)当前audioSession处于active时,其他active状态下的audioSession中断;当前audioSession解除active时,其他audioSession不恢复。

    [audioSession setActive:YES error:nil];

        2)当前audioSession处于active时,其他active状态下的audioSession中断;当前audioSession解除active时,其他audioSession中断结束。

    [audioSession setActive:YES  withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:nil];

5、根据需求设置AVAudioSession的category、mode、option(AVAudioSession)


当设备有多个外接音频设备时,AVAudioSession将遵循last-in wins的原则来选择外接设备,即音频将导向最终的外接设备。

当没有外接音频设备时,音频默认从内置扬声器播放,但category为AVAudioSessionCategoryPlayAndRecord时,听筒为默认输出设备。

AVAudioSessionCategoryPlayAndRecord情况下,如果想更改默认输出设备,可以通过提供MPVolumeView让用户切换输出设备;或者通过调用overrideOutputAudioPort:方法来使用AVAudioSessionPortOverrideSpeaker切换到扬声器,也可以通过修改CategoryOption为AVAudioSessionCategoryOptionDefaultToSpeaker。

[audioSession overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil];

[audioSession setCategory:AVAudioSessionCategorySoloAmbient withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker error:nil];

你可能感兴趣的:(音频小结)