iOS音频通用配置

1、记录音频的类别Category

#pragma mark -- Values for the category property --
 
/*  Use this category for background sounds such as rain, car engine noise, etc.  
 Mixes with other music. */
AVF_EXPORT NSString *const AVAudioSessionCategoryAmbient;
 
/*  Use this category for background sounds.  Other music will stop playing. */
AVF_EXPORT NSString *const AVAudioSessionCategorySoloAmbient;
 
/* Use this category for music tracks.*/
AVF_EXPORT NSString *const AVAudioSessionCategoryPlayback;
 
/*  Use this category when recording audio. */
AVF_EXPORT NSString *const AVAudioSessionCategoryRecord;
 
/*  Use this category when recording and playing back audio. */
AVF_EXPORT NSString *const AVAudioSessionCategoryPlayAndRecord;
 
/*  Use this category when using a hardware codec or signal processor while
 not playing or recording audio. */
AVF_EXPORT NSString *const AVAudioSessionCategoryAudioProcessing NS_DEPRECATED_IOS(3_0, 10_0) __TVOS_PROHIBITED __WATCHOS_PROHIBITED;
 
/*  Use this category to customize the usage of available audio accessories and built-in audio hardware.
 For example, this category provides an application with the ability to use an available USB output 
 and headphone output simultaneously for separate, distinct streams of audio data. Use of 
 this category by an application requires a more detailed knowledge of, and interaction with, 
 the capabilities of the available audio routes.  May be used for input, output, or both.
 Note that not all output types and output combinations are eligible for multi-route.  Input is limited
 to the last-in input port. Eligible inputs consist of the following:
    AVAudioSessionPortUSBAudio, AVAudioSessionPortHeadsetMic, and AVAudioSessionPortBuiltInMic.  
 Eligible outputs consist of the following: 
    AVAudioSessionPortUSBAudio, AVAudioSessionPortLineOut, AVAudioSessionPortHeadphones, AVAudioSessionPortHDMI, 
    and AVAudioSessionPortBuiltInSpeaker.  
 Note that AVAudioSessionPortBuiltInSpeaker is only allowed to be used when there are no other eligible 
 outputs connected.  */
AVF_EXPORT NSString *const AVAudioSessionCategoryMultiRoute NS_AVAILABLE_IOS(6_0);
  • AVAudioSessionCategoryAmbient : 此类别适用于伴奏模式应用,例如用户在使用音乐应用播放时播放的伴奏。当使用该类别时,来自其他应用程序的音频会与当前的音频混合。屏幕锁定和Silent开关【静音开关】会使其静音

  • AVAudioSessionCategorySoloAmbient : 系统默认会话类别。默认情况下,使用该类别意味着应用程序的音频不可混合,激活应用中的会话将终止其它音频会话不可混合。如允许混合,则改用 AVAudioSessionCategoryAmbient。

  • AVAudioSessionCategoryPlayback :用于播放录制音乐或者其它声音的类别。静音开关或者锁屏不会影响音频的播放。如要在应用程序转换到后台时继续播放(锁屏情况下)在xcode中设置 UIBackgroundModes 即可。默认情况下,使用此类别意味着,应用的音频不可混合,激活音频会话将中断其它不可混合的音频会话。如要使用混音,则使用 AVAudioSessionCategoryOptionMixWithOthers。

  • AVAudioSessionCategoryRecord: 录制音频的类别,此类别使播放音频静音。只要该会话处于活动状态此类别会使系统上的所有输出停止。除非需要防止播放其它的声音,否则建议使用 AVAudioSessionCategoryPlayAndRecord。要在应用程序在后台继续录制音频(锁屏情况)在xcode中设置 UIBackgroundModes 即可。

用户必须授权音频录制权限(iPhone 麦克风权限)。
此类别会话会被 电话呼叫、闹钟或者其它非混音音频会话中断

  • AVAudioSessionCategoryPlayAndRecord : 录音(输入)和播放(输出)音频的类别,例如VoIP(互联网语音协议)应用程序。
    静音键开启和锁屏都不会影响音频继续播放。如要在应用程序转换到后台时继续播放(锁屏情况下)在xcode中设置 UIBackgroundModes 即可。此类别适用于同时录制和播放(语音连麦),也适用于录音/播放(IM语音条)但不能同时播放。默认情况下,使用此类别意味着应用程序的音频不可混合。激活会话将终端任何其他音频会话也是不可混合的。要允许为此类别混音,请使用AVAudioSessionCategoryOptionMixWithOthers选项

用户必须授权音频录制权限(iPhone 麦克风权限)
此类别支持Airplay的镜像版本。但是,如果AVAudioSessionModeVoiceChat模式与此类别一起使用,则AirPlay镜像将被禁用。

  • AVAudioSessionCategoryMultiRoute : 用于将不同音频数据流同时路由到不同输出设备的类别。此类别可用于输入,输出或两者。 例如,使用此类别将音频路由到USB设备和一组耳机。 使用这个类别需要对可用音频路由的功能有更详细的了解,并与之互动。
    路由更改可能会使部分或全部多路由配置失效。 使用AVAudioSessionCategoryMultiRoute类别时,必须注册以观察AVAudioSessionRouteChangeNotification通知并根据需要更新配置。

可用于输入,输出或两者。
请注意,并非所有输出类型和输出组合都适用于多路径。输入是有限的
到最后一个输入端口。合格的输入包括以下内容:
AVAudioSessionPortUSBAudio,AVAudioSessionPortHeadsetMic和AVAudioSessionPortBuiltInMic。
符合条件的产出包括以下内容:
AVAudioSessionPortUSBAudio,AVAudioSessionPortLineOut,AVAudioSessionPortHeadphones,AVAudioSessionPortHDMI,
和AVAudioSessionPortBuiltInSpeaker。
请注意,AVAudioSessionPortBuiltInSpeaker只允许在没有其他符合条件时使用
输出连接。

表格形式

你可能感兴趣的:(iOS音频通用配置)