• iOS-AVAudioSessionCategory


    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
    

    AVAudioSession的类别

    • AVAudioSessionCategoryAmbient

    混音播放,例如雨声、汽车引擎等,可与其他音乐一起播放

    • AVAudioSessionCategorySoloAmbient

    后台播放,其他音乐将被停止

    • AVAudioSessionCategoryPlayback

    独占音乐播放 (如:用于扬声器播放)

    • AVAudioSessionCategoryRecord

    录制音频

    • AVAudioSessionCategoryPlayAndRecord

    播放和录制音频 (如:用于听筒播放)

    • AVAudioSessionCategoryAudioProcessing

    使用硬件解码器处理音频,该音频会话使用期间,不能播放或录音

    特殊场景

    如:webrtc中视音频通话需要录音,但是声音可以从听筒传出或者话筒传出

    typedef NS_ENUM(NSInteger,SDVideoCallMode){
        SDVideoCallModeInitiator = 0,
        SDVideoCallModeResponder = 1
    };
    @property (nonatomic,assign) SDMediaCallAudioPlayMode audioPlayMode;
    -(void)setAudioPlayMode:(SDMediaCallAudioPlayMode)audioPlayMode{
        _audioPlayMode = audioPlayMode;
        // 录音+扬声器播放
        if (_audioPlayMode == SDMediaCallAudioPlayModeLoudSpeaker) {
            [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
            [[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil];
        }
        // 录音+听筒播放
        else{
            [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
            [[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideNone error:nil];
        }
        //[[AVAudioSession sharedInstance] setActive:YES error:nil];
    }
    
  • 相关阅读:
    AMQP协议
    设计模式三:行为型模式
    设计模式二:结构型模式
    设计模式一:创建型模式
    算法进阶
    数据结构
    希尔排序、计数排序、桶排序、基数排序
    归并排序
    python Gevent协程
    python——多进程
  • 原文地址:https://www.cnblogs.com/lancely/p/5782748.html
Copyright © 2020-2023  润新知