iOS系统音量控制——MPVolumeView
iOS的音量控制接口在 ` MediaPlayer ` 库中,
1. 首先要将该库导入:
2. 然后在用到的地方引入 ` MPVolumeView ` 的头文件:
` #import <MediaPlayer/MPVolumeView.h> `
3. 而 ` MPVolumeView ` 中负责控制音量的是它的子视图 ` MPVolumeSlider ` ,而这个类并未对外公开,所以要去控制它,需要遍历 ` volumeView ` 的子视图,把它找出来,并赋值:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
MPVolumeView *volumeView = [{MPVolumeView alloc] init];
UISlider *volumeViewSlider = nil;
for (UIView *view in [volumeView subviews]) {
if ([view.class.description isEqualToString:@"MPVolumeSlider"]) {
volumeViewSlider = (UISlider *)view;
break;
}
}
// change system volume, the value is between 0.0f and 1.0f
[volumeViewSlider setValue:0.3f animated:NO];
// send UI control event to make the change effect right now. 立即生效
[volumeViewSlider sendActionsForControlEvents:UIControlEventTouchUpInside];
然后就可以通过控制 ` volumeViewSlider ` 去控制系统音量了。
这种情况下,调节音量时会显示系统音量提示框,若要关掉,需将 ` volumeView ` 添加至当前视图,如不需要 ` volumeView ` ,可以将它设置到视图外,隐藏掉它:
1
2
[volumeView setFrame:CGRectMake(-1000, -100, 100, 100)];
[self.view addSubview:volumeView];
demo地址: VolumePanel (未隐藏 ` volumeView ` )
本文由作者按照 CC BY 4.0 进行授权