AudioSession简介(-)

AudioSession简介

iOS 通过sessions和AudioSession APIs处理音频行为,交互(图来自apple)

AudioSession简介(-)_第1张图片
aspg_intro_2x.png

通过AudioSession API,可以控制App的audio相关的行为

  • 为app选择输入输出的路由 (通过扬声器还是听筒播放)
  • 协调音频播放的app之间的关联,以及系统的声音处理
  • 处理被其他apps打断
  • 创建一个录音或者播放音乐的

定义一个 AudioSession 是一个单例

 [AVAudioSession sharedInstance]

设置Category 通过调用音频会话对象的setCategory:error:实例方法,来从iOS应用可用的不同类别中作出选择

相关方法

/* set session category */
- (BOOL)setCategory:(NSString *)category error:(NSError **)outError;
/* set session category with options */
- (BOOL)setCategory:(NSString *)category withOptions: (AVAudioSessionCategoryOptions)options error:(NSError **)outError NS_AVAILABLE_IOS(6_0);

Category 的类型

* AVAudioSessionCategorySoloAmbient 
  会停止其他程序的音频播放。当设备被设置为静音模式,app也同样被停止

* AVAudioSessionCategoryRecord
  仅用来录音,无法播放音频

* AVAudioSessionCategoryPlayback 
 会停止其它音频播放,并且能在后台播放,锁屏and静音模式下均可

* AVAudioSessionCategoryPlayAndRecord
  能播也能录,播放默认声音是从听筒出来

* AVAudioSessionCategoryAmbient
  app的声音可与其它app共存,但锁屏和静音情况会被停止,除非当前app是唯一播放的app

激活当前的AudioSession

    
- (BOOL)setActive:(BOOL)active error:(NSError **)outError;
- (BOOL)setActive:(BOOL)active withFlags:(NSInteger)flags error:(NSError **)outError NS_DEPRECATED_IOS(4_0, 6_0);
- (BOOL)setActive:(BOOL)active withOptions:(AVAudioSessionSetActiveOptions)options error:(NSError **)outError NS_AVAILABLE_IOS(6_0);

AudioSession官网介绍

https://developer.apple.com/library/content/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007875

你可能感兴趣的:(AudioSession简介(-))