ios系统音量的设置以及获取

注意:设置或者获取音量可能很多地方都用的到,因此可以把下面的方法写在最appdelegate中

一、设置音量相关

注意: 设置音量大小,如果不在播放音乐的时候设置这个的话可能会直接设置铃声,而且设置的值可能设置不上,如果要在app刚刚启动的时候设置音量,需要将AVAudioSession设置为活跃状态[[AVAudioSession sharedInstance]setActive:YES error:error];

1.1 获取MPVolumeView

 - (MPVolumeView*)volumeView {

       if (!_volumeView) {

          _volumeView= [[MPVolumeViewalloc]initWithFrame:CGRectMake(-100,                     -100,40,40)];

   //将x、y设置成-100就会将音量界面隐藏

  //下面两行代码都会使音量界面重新显示

    //    [_volumeView setHidden:YES];

    //     [_volumeView removeFromSuperview];

        [self.window addSubview:_volumeView];

     }

    return _volumeView;

}

1.2、 获取MPVolumeView上面的滑条

- (UISlider*)volumeSlider {

    UISlider* volumeSlider =nil;

    for(UIView*viewin[self.volumeViewsubviews]) {

        if ([view.class.description isEqualToString:@"MPVolumeSlider"]){

            volumeSlider = (UISlider*)view;

            break;

        }

    }

    returnvolumeSlider;

}

  1.2、设置大小:

参数值范围:0~100

- (void)setVolume:(float)value {

      self.volumeSlider = [self volumeSlider];

      // 需要设置 showsVolumeSlider 为 YES

      self.volumeView.showsVolumeSlider = YES; 

     [self.volumeSlidersetValue:value animated:NO];

     [self.volumeSlider sendActionsForControlEvents:UIControlEventTouchUpInside];

     [self.volumeView sizeToFit];

   }

二、获取音量大小

首先你需要导入#import头文件。

注意: 在app刚刚初始化的时候使用MPVolumeView获取音量大小可能为0,因此使用[[AVAudioSession sharedInstance]outputVolume],使用AVAudioSession需要导入头文件#import

-(float)getVolume{

    return self.volumeSlider.value > 0 ? self.volumeSlider.value : [[AVAudioSession sharedInstance]outputVolume];

}

三、监听系统音量的变化

3.1、使用通知监听

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(systemVolumeDidChangeNoti:) name:@"AVSystemController_SystemVolumeDidChangeNotification" object:nil];

-(void)systemVolumeDidChangeNoti:(NSNotification* )noti{

//目前手机音量

        float voiceSize = [[noti.userInfo valueForKey:@"AVSystemController_AudioVolumeNotificationParameter"]floatValue];

}

3.2销毁监听

-(void)dealloc{

    [[NSNotificationCenter defaultCenter]removeObserver:self];

}

你可能感兴趣的:(ios系统音量的设置以及获取)