请注意:
修改系统音量无法在模拟器上看到效果,必须使用真机调试才能看到效果!
使用前请导入库 #import <MediaPlayer/MediaPlayer.h>
1. 获取系统音量控制视图
先声明_volumeViewSlider
属性
-(void)getVolumeVolue
{
MPVolumeView *volumeView = [[MPVolumeView alloc] init];
_volumeViewSlider = nil;
for (UIView *view in [volumeView subviews]){
if ([view.class.description isEqualToString:@"MPVolumeSlider"]){
_volumeViewSlider = (UISlider *)view;
break;
}
}
}
2. 修改系统音量的值
- (void)verticalMoved:(CGFloat)value
{
// 更改系统的音量
self.volumeViewSlider.value = value ;// 越小幅度越小0-1之间的数值
}
其他的需求:
通过上面的方法获取到控制音量的滑块之后,当我们改变滑块的value之后,系统的音量提示框会展示出来,也许有的APP中要自己定义音量改变的提示框,于是便要隐藏系统的音量提示框
实现:
上面的 获取 系统音量滑块 的时候,并没有将滑块假如到我们的视图中,如果将其假如到我们的视图之中后,就会发现系统的音量提示框便不会展示,可以知道:音量滑块 (volumeViewSlider)在视图层级中,系统的音量提示框便不会展示,音量滑块 (volumeViewSlider)不在视图层级中,系统的音量提示框便会展示,这样就好办了,将音量滑块 (volumeViewSlider)的坐标调整到最低层级,或者将其坐标设置为负值如(-1000,-1000,100,4)
但是有一点要注意,不能将其 hidden 设置为YES ,如果设置为YES ,就会检测到 音量滑块 (volumeViewSlider)并没有在视图层级中,系统的音量提示框还会展示