美文网首页
AudioSession简介(-)

AudioSession简介(-)

作者: Maggie的小蜗居 | 来源:发表于2016-11-13 20:05 被阅读2840次

    AudioSession简介

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

    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简介(-)

          本文链接:https://www.haomeiwen.com/subject/anvcpttx.html