美文网首页AVAudioSession
AVAudioSession中的一些枚举

AVAudioSession中的一些枚举

作者: Calvin_Shen | 来源:发表于2018-11-20 10:24 被阅读82次

    一、Values for the category property
    AVAudioSessionCategoryAmbient:后台播放(可与其他音乐混合):下雨声、骑车发动机噪音等。静音停止!
    AVAudioSessionCategorySoloAmbient:后台播放,其他音乐都会停止。静音停止!
    AVAudioSessionCategoryPlayback:音乐轨道,独占。静音不停止!
    AVAudioSessionCategoryRecord:录制音频。静音不停止!
    AVAudioSessionCategoryPlayAndRecord:播放音频并且录制。静音不停止!
    AVAudioSessionCategoryAudioProcessing:在硬件解码信号过程中不能播放和录制音频,静音不停止!
    AVAudioSessionCategoryMultiRoute (6.0以上):通过可以用的音频辅助设备和内置音频硬件设备,我们可以自定义使用类型;
    前提input/output限制为下面几种:

    Eligible Input

    AVAudioSessionPortUSBAudio
    AVAudioSessionPortHeadsetMic
    AVAudioSessionPortBuiltInMic
    Eligible Output

    AVAudioSessionPortUSBAudio
    AVAudioSessionPortLineOut
    AVAudioSessionPortHeadphones
    AVAudioSessionPortHDMI
    AVAudioSessionPortBuiltInSpeaker
    二、Values for the mode property
    类别的选择是基于App的基本行为;
    而模式的选择多用于专业音频的范畴,选择一个模式将进一步确认App的音频行为。一共7种模式。

    AVAudioSessionModeDefault:默认模式
    AVAudioSessionModeVideoRecording:使用摄像头捕捉视频。Record类别搭配
    AVAudioSessionModeMeasurement:减少设备在处理音频I/O 的信号量时的影响
    AVAudioSessionModeMoviePlayback:只能用于内置扬声器,电影播放场景中适当的信号处理
    AVAudioSessionModeVideoChat:
    AVAudioSessionModeSpokenAudio:
    AVAudioSessionModeVoiceChat:Voip,这样模式只能跟PlayAndRecord模式搭配。信号通过系统优化语音,(再理解)
    AVAudioSessionModeGameChat:游戏程序(不介绍)
    三、ENUM
    1.AVAudioSessionInterruptionOptions

    AVAudioSessionInterruptionOptionShouldResume:重启
    2.AVAudioSessionSetActiveOptions

    AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation:通知中断的应用程序被中断已结束,可以申请恢复播放。只有有效的Session才会失活。
    3.AVAudioSessionPortOverride

    AVAudioSessionPortOverrideNone:返回当前音频默认状态
    AVAudioSessionPortOverrideSpeaker:音频输出到扬声器,重写‘播放和录音’属性,通过默认输出路径到接受者。(重新理解)
    4.AVAudioSessionRouteChangeReason

    这个枚举值是AVAudioSessionRouteChangeNotification字典中的value值。

    AVAudioSessionRouteChangeReasonUnknown:原因不明
    AVAudioSessionRouteChangeReasonNewDeviceAvailable:一个新设备可用(例如:耳机已经插入)
    AVAudioSessionRouteChangeReasonOldDeviceUnavailable:一个旧设备不可用(例如:耳机已经拔出)
    AVAudioSessionRouteChangeReasonCategoryChange:音频类别已经改变(例如:Audio从Play back 已给变为Play And Record)
    AVAudioSessionRouteChangeReasonOverride:音频route 已经被重写(例如:类别是Play And Record,输出设备已经从默认的接收器改变成为扬声器)
    AVAudioSessionRouteChangeReasonWakeFromSleep:设备从休眠中醒来
    AVAudioSessionRouteChangeReasonNoSuitableRouteForCategory:没有路径能返回当前的类别(例如:Record类别当前没有输入设备)
    AVAudioSessionRouteChangeReasonRouteConfigurationChange:当前输入/输出端口没变,但设置已经修改(例如:一个端口的数据选择已经改变)
    5.AVAudioSessionCategoryOptions

    使用方法:setCategory:withOptions:error:

    AVAudioSessionCategoryOptionMixWithOthers
    AVAudioSessionCategoryOptionDuckOthers
    AVAudioSessionCategoryOptionAllowBluetooth
    AVAudioSessionCategoryOptionDefaultToSpeaker
    AVAudioSessionCategoryOptionInterruptSpokenAudioAndMixWithOthers
    6.AVAudioSessionInterruptionType

    AVAudioSessionInterruptionTypeBegan
    AVAudioSessionInterruptionTypeEnded
    7.AVAudioSessionSilenceSecondaryAudioHintType

    AVAudioSessionSilenceSecondaryAudioHintTypeBegin
    AVAudioSessionSilenceSecondaryAudioHintTypeEnd
    8.AVAudioSessionRecordPermission(录音权限)

    AVAudioSessionRecordPermissionUndetermined :待定的
    AVAudioSessionRecordPermissionDenied :拒绝的
    AVAudioSessionRecordPermissionGranted :授予的
    9.AVAudioSessionErrorCode(错误原因)

    typedef NS_ENUM(NSInteger, AVAudioSessionErrorCode)
    {
    AVAudioSessionErrorCodeNone = 0,
    AVAudioSessionErrorCodeMediaServicesFailed = 'msrv', /* 0x6D737276, 1836282486 /
    AVAudioSessionErrorCodeIsBusy = '!act', /
    0x21616374, 560030580 /
    AVAudioSessionErrorCodeIncompatibleCategory = '!cat', /
    0x21636174, 560161140 /
    AVAudioSessionErrorCodeCannotInterruptOthers = '!int', /
    0x21696E74, 560557684 /
    AVAudioSessionErrorCodeMissingEntitlement = 'ent?', /
    0x656E743F, 1701737535 /
    AVAudioSessionErrorCodeSiriIsRecording = 'siri', /
    0x73697269, 1936290409 /
    AVAudioSessionErrorCodeCannotStartPlaying = '!pla', /
    0x21706C61, 561015905 /
    AVAudioSessionErrorCodeCannotStartRecording = '!rec', /
    0x21726563, 561145187 /
    AVAudioSessionErrorCodeBadParam = -50,
    AVAudioSessionErrorInsufficientPriority = '!pri', /
    0x21707269, 561017449 /
    AVAudioSessionErrorCodeResourceNotAvailable = '!res', /
    0x21726573, 561145203 /
    AVAudioSessionErrorCodeUnspecified = 'what' /
    0x77686174, 2003329396 */
    } NS_AVAILABLE_IOS(7_0);
    四、constants for port types
    1.input port types

    AVAudioSessionPortLineIn
    AVAudioSessionPortBuiltInMic :内置麦克风
    AVAudioSessionPortHeadsetMic :耳机线中的麦克风
    2.output port types

    AVAudioSessionPortLineOut
    AVAudioSessionPortHeadphones :耳机或者耳机式输出设备
    AVAudioSessionPortBuiltInReceiver :帖耳朵时候内置扬声器(打电话的时候的听筒)
    AVAudioSessionPortBuiltInSpeaker :iOS设备的扬声器
    AVAudioSessionPortBluetoothA2DP :A2DP协议式的蓝牙设备
    AVAudioSessionPortHDMI :高保真多媒体接口设备
    AVAudioSessionPortAirPlay :远程AirPlay设备
    AVAudioSessionPortBluetoothLE :蓝牙低电量输出设备
    3.可以支持input or output 端口类型

    AVAudioSessionPortBluetoothHFP :在蓝牙免提上的input or output
    AVAudioSessionPortUSBAudio
    AVAudioSessionPortCarAudio
    五、SourceLocation&Orientations&PolarPattern&ChannelRoles(~ ~!)
    1.Source Location

    AVAudioSessionLocationUpper
    AVAudioSessionLocationLower
    2.Orientation

    AVAudioSessionOrientationTop
    AVAudioSessionOrientationBottom
    AVAudioSessionOrientationFront
    AVAudioSessionOrientationBack
    AVAudioSessionOrientationLeft
    AVAudioSessionOrientationRight
    3.Polar pattern

    AVAudioSessionPolarPatternOmnidirectional
    AVAudioSessionPolarPatternCardioid
    AVAudioSessionPolarPatternSubcardioid
    六、Helper Class Interface

    1. AVAudioSessionChannelDescription

    2. AVAudioSessionPortDescription

    3. AVAudioSessionRouteDescription

    七、 AVAudioSessionDelegate protocol

    beginInterruption : 一些东西导致音频被打断(监听回调)
    endInterruptionWithFlags :参数只有一个:AVAudioSessionInterruptionOptions,打断结束了
    endInterruption :如果执行这个方法,就会默认执行endInterruptionWithFlags
    inputIsAvailableChanged:通知input设备是有效的或者无效的

    相关文章

      网友评论

        本文标题:AVAudioSession中的一些枚举

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