美文网首页iOS技术收藏
设置AVPlayer播放静音,不切断手机声源

设置AVPlayer播放静音,不切断手机声源

作者: seonhiu | 来源:发表于2017-10-10 15:15 被阅读673次

    AVPlayer声源几种方式:
    AVAudioSessionCategoryAmbient 或 kAudioSessionCategory_AmbientSound
    ———用于非以语音为主的应用,使用这个category的应用会随着静音键和屏幕关闭而静音。并且不会中止其它应用播放声音,可以和其它自带应用如iPod,safari等同时播放声音。注意:该Category无法在后台播放声音

    AVAudioSessionCategorySoloAmbient 或 kAudioSessionCategory_SoloAmbientSound
    ———类似于AVAudioSessionCategoryAmbient 不同之处在于它会中止其它应用播放声音。 这个category为默认category。该Category无法在后台播放声音

    AVAudioSessionCategoryPlayback 或 kAudioSessionCategory_MediaPlayback
    ———用于以语音为主的应用,使用这个category的应用不会随着静音键和屏幕关闭而静音。可在后台播放声音

    AVAudioSessionCategoryRecord 或 kAudioSessionCategory_RecordAudio
    ———用于需要录音的应用,设置该category后,除了来电铃声,闹钟或日历提醒之外的其它系统声音都不会被播放。该Category只提供单纯录音功能。

    AVAudioSessionCategoryPlayAndRecord 或 kAudioSessionCategory_PlayAndRecord
    ———用于既需要播放声音又需要录音的应用,语音聊天应用(如微信)应该使用这个category。该Category提供录音和播放功能。如果你的应用需要用到iPhone上的听筒,该category是你唯一的选择,在该Category下声音的默认出口为听筒(在没有外接设备的情况下)。

    #import <AVFoundation/AVFAudio.h>
    
    //设置声音模式,在播放器页面直接调用这个方法(根据自己的需求设置模式即可)
    - (void)setVolume{
    
        NSError *setCategoryError = nil;
        BOOL success = [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryAmbient 
    error: &setCategoryError];
    
        if (!success) {  
            NSLog(@"设置失败,其他处理!");
        }
    }
    

    相关文章

      网友评论

        本文标题:设置AVPlayer播放静音,不切断手机声源

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