iOS系统音量控制——MPVolumeView

版权声明:本文为博主原创文章,未经博主允许不得转载。个人独立博客:https://ichenwin.github.io GitHub、知乎等网站用户名:iChenwin https://blog.csdn.net/u013993802/article/details/72185001

iOS的音量控制接口在MediaPlayer库中,
1. 首先要将该库导入:
MediaPlayer
2. 然后在用到的地方引入MPVolumeView的头文件:
#import <MediaPlayer/MPVolumeView.h>
3. 而MPVolumeView中负责控制音量的是它的子视图MPVolumeSlider,而这个类并未对外公开,所以要去控制它,需要遍历volumeView的子视图,把它找出来,并赋值:

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,可以将它设置到视图外,隐藏掉它:

[volumeView setFrame:CGRectMake(-1000, -100, 100, 100)];
[self.view addSubview:volumeView];

demo地址:VolumePanel(未隐藏volumeView)

猜你喜欢

转载自blog.csdn.net/u013993802/article/details/72185001