ios调节音量、隐藏或显示系统提示框

控制音量与显示HUD全部都在 MPVolumeView 这个类做操作

  1. 这个方法是苹果官方推荐的方法:
    MPVolumeView是Media Player Framework中的一个UI组件
  2. 苹果官方废弃的方法: MPMusicPlayerController , 这里就不展开了

1. 控制音量: UISlider

UISlider 是 MPVolumeView 的一个子类, 所有我们需要在MPVolumeView里面找出UISlider这个子类来, 就可以控制音量的大小.
在任何地方都可以获取UISlider来控制音量.
代码百度很多:

/**
 获取系统音量控制条
 */
- (void)getSystemVolumSlider
{
    self.volumeSlider = nil;
    MPVolumeView *volumeView = [[MPVolumeView alloc] initWithFrame:CGRectZero];
    for (UIView* newView in volumeView.subviews) {
        if ([newView.class.description isEqualToString:@"MPVolumeSlider"]){
            self.volumeSlider = (UISlider*)newView;
            break;
        }
    }
}
/// 修改音量大小
/// UISlider 里面的value属性可以设置和获取系统音量
self.volumeSlider.value = 999;    // 或者
[self.volumeSlider setValue:999];

2. 显示与隐藏音量HUD: MPVolumeView

音量HUD是系统的HUD, 如果系统检测到没有显示 HUD, 会自动帮我们显示, 所以我们要做的就是, 自己创建一个 MPVolumeView 添加到 控制器的view上面.
如果不需要系统的HUD的话, 我们可以把 MPVolumeView 的frame 设置为0, 或者不设置frame, 或者设置到屏幕外面, 都可以.
如果需要系统的HUD的话, 直接不添加到控制器的view上面就可以, 因为系统检测到没有 设置 MPVolumeView 就会自动添加

//自定义MPVolumeView 
MPVolumeView *volumeView = [[MPVolumeView alloc] initWithFrame:CGRectZero];
//把自定义的MPVolumeView添加到控制器的view上
[self.view addSubview: volumeView];

注意: 显示与隐藏只能在控制器中操作, 在view里面是无法操作的

你可能感兴趣的:(ios调节音量、隐藏或显示系统提示框)