iOS_隐藏系统音量(MPVolumeView初探)
2016-08-25 16:02
483 查看
有些应用会需要我们隐藏系统的音量 HUD 提示框,之前我们都是用 "MPMusicPlayerController" 来进行隐藏,但在iOS7.0之后我们发现可以使用
“MPVolumeView” 来进行系统音量的自定义了,来来一起使用看看吧。
2016-09-08 MPVolumeView是什么?
MPVolumeView是Media Player Framework中的一个UI组件,直接包含了对系统音量和Airplay设备的音频镜像路由的控制功能。其中包含一个MPVolumeSlider的子视图用来控制音量。这个MPVolumeSlider是一个私有类,我们无法手动创建此类,但这个类是UISlider的子类。MPVolumeView的使用很简单,只需要将其加入到一个父视图中,给予父视图合适的大小,再创建MPVolumeView示例,将其加入到父视图中即可。
网上有人总结了两个缺点我们也列出来:
1.UI可定制的的程度低。 MPVolumeView只提供了有限的几个方法来定制其中的Slider和Route Button的样式,而且基本上只能靠换图片解决。如果你想把Slider操作换成Button或者其他的UI组件,那是不可能的。
2.没有额外的音量控制API。 目前为止没有发现iOS的公开API中有可以直接操作系统音量的,所以修改系统音量只能使用这个UI组件。
如果还想给UI加入手势操作来控制音量,这种直接使用MPVolumeView是做不到的,你需要用到MPVolumeSlider来实现。
------------------------------------------------------------------------------------------
老样子直接上代码(注释都写好了呦~)
这中间还用到了 "UISlider" 的使用可以看我之前写的博客
http://blog.csdn.net/siwen1990/article/details/48446407
当然如果你只需要隐藏音量提示框,那么直接自己改变下frame就好了
另外这次的demo一样是放在了云盘
https://yunpan.cn/cMx3CuLyRnSfn (提取码:5262)
感谢观看,学以致用更感谢!
“MPVolumeView” 来进行系统音量的自定义了,来来一起使用看看吧。
2016-09-08 MPVolumeView是什么?
MPVolumeView是Media Player Framework中的一个UI组件,直接包含了对系统音量和Airplay设备的音频镜像路由的控制功能。其中包含一个MPVolumeSlider的子视图用来控制音量。这个MPVolumeSlider是一个私有类,我们无法手动创建此类,但这个类是UISlider的子类。MPVolumeView的使用很简单,只需要将其加入到一个父视图中,给予父视图合适的大小,再创建MPVolumeView示例,将其加入到父视图中即可。
网上有人总结了两个缺点我们也列出来:
1.UI可定制的的程度低。 MPVolumeView只提供了有限的几个方法来定制其中的Slider和Route Button的样式,而且基本上只能靠换图片解决。如果你想把Slider操作换成Button或者其他的UI组件,那是不可能的。
2.没有额外的音量控制API。 目前为止没有发现iOS的公开API中有可以直接操作系统音量的,所以修改系统音量只能使用这个UI组件。
如果还想给UI加入手势操作来控制音量,这种直接使用MPVolumeView是做不到的,你需要用到MPVolumeSlider来实现。
------------------------------------------------------------------------------------------
老样子直接上代码(注释都写好了呦~)
// // ViewController.m // MPVolumeViewExe // // Created by a111 on 16/8/25. // Copyright © 2016年 司小文. All rights reserved. // #import "ViewController.h" #import <MediaPlayer/MediaPlayer.h> #import <AVFoundation/AVFoundation.h> @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor grayColor]; self.title = @"音量"; //自定义MPVolumeView 高度不能改变其他都可以 MPVolumeView *volumeView = [[MPVolumeView alloc] initWithFrame:CGRectMake(10, 200, 300, 100)]; //把自定义的MPVolumeView贴在view上 [self.view addSubview: volumeView]; //寻找建立UISlider; UISlider* volumeViewSlider = nil; //设置音量大小 volumeViewSlider.value = 0.7; for (UIView *view in [volumeView subviews]){ if ([view.class.description isEqualToString:@"MPVolumeSlider"]){ volumeViewSlider = (UISlider*)view; volumeViewSlider.backgroundColor = [UIColor yellowColor]; break; } } //改变拖动条的图片 [volumeViewSlider setThumbImage:[UIImage imageNamed:@"img_Zbar_BarcodeSele_00@2x.png"] forState:UIControlStateNormal]; //改变拖动条的颜色,图片和颜色同时只能存在一个 // volumeViewSlider.thumbTintColor = [UIColor orangeColor]; volumeViewSlider.minimumTrackTintColor = [UIColor redColor]; volumeViewSlider.maximumTrackTintColor = [UIColor blueColor]; // Do any additional setup after loading the view, typically from a nib. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
这中间还用到了 "UISlider" 的使用可以看我之前写的博客
http://blog.csdn.net/siwen1990/article/details/48446407
当然如果你只需要隐藏音量提示框,那么直接自己改变下frame就好了
//自定义MPVolumeView 高度不能改变其他都可以 MPVolumeView *volumeView = [[MPVolumeView alloc] initWithFrame:CGRectMake(-100, 0, 10, 10)]; //把自定义的MPVolumeView贴在view上 [self.view addSubview: volumeView];
另外这次的demo一样是放在了云盘
https://yunpan.cn/cMx3CuLyRnSfn (提取码:5262)
感谢观看,学以致用更感谢!
相关文章推荐
- iOS系统音量控制——MPVolumeView
- IOS音量调节--隐藏系统音量调节
- ios隐藏系统音量图标,并监听系统声音
- iOS --- 音量调节视图MPVolumeView的使用
- iOS UITableView用系统自带的分割线隐藏不用显示的线
- 获取系统当前音量 和 监听系统音量 ios
- IOS疯狂基础之隐藏系统键盘
- IOS UITableView的点击展开隐藏功能的思路
- IOSUITableView展开隐藏资源
- 【iOS-Cocos2d游戏开发之七】在cocos2d中添加/删除系统组件,并解决View设置透明会影响View中的其他组件的问题!【11月28日更新解决添加组件Cocos2d动画停止播放的BUG】
- IOS开发之自定义系统弹出键盘上方的view(转载)
- IOS背景view隐藏键盘
- 【iOS-Cocos2d游戏开发之十六】添加本地通知(UILocalNotification)以及添加系统组件滚动视图(UIScrollView)!【2011年11月15日更新】
- IOS零碎技术整理(2)-隐藏系统Tabbar
- ios隐藏statusbar同时view置顶的方法
- Android系统移植与调试之------->如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
- iOS事件拦截(实现触摸任意位置隐藏指定view)
- 自定义实现MPVolumeView音量控件
- 【iOS-Cocos2d游戏开发之七】添加/删除系统组件,并解决View设置透明会影响View中的其他组件的问题! 推荐
- iphone ios5.0 调节系统音量