音频小结

要看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];

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容