修改iOS系统的音量
###请注意:
##修改系统音量无法在模拟器上看到效果,必须使用真机调试才能看到效果!
使用前请导入库 #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)并没有在视图层级中,系统的音量提示框还会展示