2016-02-04 36 views
0

此代码的iOS 8.0设备工作正常,但在iOS的9.0总是让滑块值0.000 ...如何更改iOS9中的音量?

(void) volumeUp{ 

MPVolumeView * volumeView = [[MPVolumeView alloc] init]; 

//find the volumeSlider 
UISlider* volumeViewSlider = nil; 
for (UIView *view in [volumeView subviews]){ 
    if ([view.class.description isEqualToString:@"MPVolumeSlider"]){ 
     volumeViewSlider = (UISlider*)view; // volumeViewSlider always 0.000 
     break; 
    } 
} 

[volumeViewSlider setValue: [volumeViewSlider value] + 0.0625 animated:YES]; 
[volumeViewSlider sendActionsForControlEvents:UIControlEventTouchUpInside]; 

} 

我怎样才能解决呢?我需要每次调高音量0.0625。

谢谢!

+0

是volumeViewSlider也许零for循环后? – onnoweb

回答

0

在你的代码中,当你调用volumeUp时,它会创建一个新的MPVolumeView并返回0或其他值。但是,如果你创建一个MPVolumeView并按住它,它会给你想要的。

像这样:

@interface ViewController() 
@property (strong, nonatomic) MPVolumeView *volumeView; 
@end 

@implementation ViewController 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    MPVolumeView *vv = [[MPVolumeView alloc] init]; 
    self.volumeView = vv; 
} 

- (IBAction)volumeUp:(id)sender 
{ 
    //find the volumeSlider 
    UISlider* volumeViewSlider = nil; 
    for (UIView *view in [self.volumeView subviews]){ 
     if ([view.class.description isEqualToString:@"MPVolumeSlider"]){ 
      volumeViewSlider = (UISlider*)view; // volumeViewSlider always 0.000 
      break; 
     } 
    } 

    [volumeViewSlider setValue: [volumeViewSlider value] + 0.0625 animated:YES]; 
    [volumeViewSlider sendActionsForControlEvents:UIControlEventTouchUpInside]; 
} 
相关问题