iOS获取及设置设备音量

设置音量相关

1. 获取MPVolumeView

   -(MPVolumeView*)volumeView {
    if (!_volumeView) {
        _volumeView= [[MPVolumeView alloc]initWithFrame:CGRectMake(-100,-100,40,40)];
        //将x、y设置成-100就会将音量界面隐藏
        //下面两行代码都会使音量界面重新显示
        //    [_volumeView setHidden:YES];
        //     [_volumeView removeFromSuperview];
        [self.view addSubview:_volumeView];
      }
         return _volumeView;
   }

2.获取MPVolumeView上面的滑条

- (UISlider*)volumeSlider {
    UISlider* volumeSlider =nil;
     for(UIView*viewin[self.volumeViewsubviews]) {
         if ([view.class.description isEqualToString:@"MPVolumeSlider"]){
            volumeSlider = (UISlider*)view;
            break;
    }
}
    return volumeSlider;
}

3.设置大小:参数值范围: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];
   }

获取音量大小

1.导入头文件 #import <MediaPlayer/MediaPlayer.h>

-(float)getVolume{
    return self.volumeSlider.value > 0 ? self.volumeSlider.value : [[AVAudioSession sharedInstance]outputVolume];
}

2.监听系统音量的变化

使用通知监听
 [[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.销毁监听

-(void)dealloc{
    [[NSNotificationCenter defaultCenter]removeObserver:self];
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。