控制音量与显示HUD全部都在 MPVolumeView 这个类做操作
- 这个方法是苹果官方推荐的方法:
MPVolumeView是Media Player Framework中的一个UI组件 - 苹果官方废弃的方法: 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里面是无法操作的
网友评论