两种简单的实现系统音量的控制:
第一种
//获取系统音量
MPVolumeView *volumeView = [[MPVolumeView alloc] init];
volumeViewSlider = nil;
for (UIView *view in [volumeView subviews]){
if ([view.class.description isEqualToString:@"MPVolumeSlider"]){
volumeViewSlider = (UISlider *)view;
break;
}
}
systemVolume = volumeViewSlider.value;
//获取系统音量
MPMusicPlayerController *mpc = [MPMusicPlayerController applicationMusicPlayer];
systemVolume = mpc.volume;
代码如下:
UISlider* volumeViewSlider;
float systemVolume;//系统音量值
CGPoint startPoint;//起始位置
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
//获取系统音量
MPVolumeView *volumeView = [[MPVolumeView alloc] init];
volumeViewSlider = nil;
for (UIView *view in [volumeView subviews]){
if ([view.class.description isEqualToString:@"MPVolumeSlider"]){
volumeViewSlider = (UISlider *)view;
break;
}
}
systemVolume = volumeViewSlider.value;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
if(event.allTouches.count == 1){
//保存当前触摸的位置
CGPoint point = [[touches anyObject] locationInView:self.view];
startPoint = point;
}
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
if(event.allTouches.count == 1){
//计算位移
CGPoint point = [[touches anyObject] locationInView:self.view];
// float dx = point.x - startPoint.x;
float dy = point.y - startPoint.y;
int index = (int)dy;
if(index>0){
if(index%5==0){//每10个像素声音减一格
NSLog(@"%.2f",systemVolume);
if(systemVolume>0.1){
systemVolume = systemVolume-0.05;
[volumeViewSlider setValue:systemVolume animated:YES];
[volumeViewSlider sendActionsForControlEvents:UIControlEventTouchUpInside];
//mpc.volume = systemVolume;
}
}
}else{
if(index%5==0){//每10个像素声音增加一格
NSLog(@"+x ==%d",index);
NSLog(@"%.2f",systemVolume);
if(systemVolume>=0 && systemVolume<1){
systemVolume = systemVolume+0.05;
[volumeViewSlider setValue:systemVolume animated:YES];
[volumeViewSlider sendActionsForControlEvents:UIControlEventTouchUpInside];
//mpc.volume = systemVolume;
}
}
}
//亮度调节
// [UIScreen mainScreen].brightness = (float) dx/self.view.bounds.size.width;
}
}