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;
    }
  • 相关阅读:
    使用 ant-design/pro-table
    cross-env 根据环境打包
    React 生成图片验证码组件使用
    一些常用的命令行
    react-grid-layout
    vsCode 常用快捷键(mac 版)
    mac 使用命令行,对远程服务器进行文件更新
    原生js 平滑滚动到页面的某个位置
    html2canvas 导出包含滚动条的内容
    react 中的 PureComponent
  • 原文地址:https://www.cnblogs.com/wusang/p/8438224.html
Copyright © 2011-2022 走看看