zoukankan      html  css  js  c++  java
  • 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];
    }
    
  • 相关阅读:
    JNI 反射
    JNI 动态注册
    Nt* 与 Zw* 区别
    python之线程
    爬虫框架之Scrapy(四 ImagePipeline)
    初试PySnooper
    爬虫框架之Scrapy(三 CrawlSpider)
    爬虫框架之Scrapy(二)
    爬虫框架之Scrapy(一)
    selenium+谷歌无头浏览器爬取网易新闻国内板块
  • 原文地址:https://www.cnblogs.com/lancely/p/5782748.html
Copyright © 2011-2022 走看看