zoukankan      html  css  js  c++  java
  • iOS 播放器静音设置方法

    介绍:整理的两种设置播放器播放静音的方法

    一、MPVolumeView-设置音量值为0

    1.获取到当前系统音量值(恢复音量时有用)

    volumeFloat = [self getVolume];
    
    -(float) getVolume
    {
        //获取系统系统音量视图
        MPVolumeView *volumeView = [[MPVolumeView alloc] initWithFrame: CGRectMake(-1000, -100, 100, 100)];
        volumeView.hidden = NO;//不显示系统音量调节视图
        [self addSubview:volumeView];
        volumeViewSlider = nil;
        for(UIView *view in [volumeView subviews])
        {
            if([[[view class] description] isEqualToString:@"MPVolumeSlider"])
            {
                volumeViewSlider=(UISlider *)view;
                break;
            }
        }
        float val = [volumeViewSlider value];
        return val;
    }

    2.关闭系统音量(设置音量值为0)

    //关闭系统音量(静音)
    -(void)closeSysVolume
    {
        [volumeViewSlider setValue:0 animated:NO];
    }

    3.恢复原来的音量

    -(void)reStartSysVolume
    {
        NSLog(@"重启音量");
    
        if (volumeFloat == 0) {
            volumeFloat = 0.5;
        }
        [volumeViewSlider setValue:volumeFloat animated:NO];
        //注:设置恢复后不会影响系统音量图标的正常显示
        MPVolumeView *volumeView = [MPVolumeView new];
        volumeView.hidden = YES;
    }

    二、AVAudioSession

    1.静音

    //关闭系统音量(静音)
    -(void)closeSysVolume
    {
        [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryRecord error:nil];
    }

    2.重新开启音量(注:调用closeSysVolume后使用该方法无效--还没找到恢复音量方法)

    -(void)reStartSysVolume
    {
        NSLog(@"重启音量");
        [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];
    }

    三、补充

    如果不想通过设置系统方式静音,可以更简单的使用播放器自带的音量属性实现静音(推荐这种方式,而不是使用修改系统方式)。例如ijkplayer的playbackVolume属性:

    //关闭音量(静音)
    -(void)closeSysVolume{
        NSLog(@"静音模式");
        self.player.playbackVolume = 0;
    }
    //重启音量
    -(void)reStartSysVolume{
        NSLog(@"重启音量");
        self.player.playbackVolume = 1;
    }
  • 相关阅读:
    简介支持向量机热门(认识SVM三位置)
    马云控股“中国文化”什么暗藏玄机?
    cocos2d-x 颜色
    饼干怪兽和APT攻击
    FindBugs:Compiler output path for module can not be null. check your module/project settings问题原因
    java传值和通过引用传递
    威佐夫博奕
    数据复制特定的代码:监视剪贴板和剪贴板内容到治疗后的剪贴板
    Opencv on Ubuntu (from Ubuntu)
    Hdu 4916 Count on the path
  • 原文地址:https://www.cnblogs.com/wusang/p/8438224.html
Copyright © 2011-2022 走看看