iOS9如何改变音量?
Posted
技术标签:
【中文标题】iOS9如何改变音量?【英文标题】:How to change the volume in iOS9? 【发布时间】:2016-02-04 23:59:55 【问题描述】:此代码在 ios 8.0 设备中运行良好,但在 iOS 9.0 中总是将滑块值设为 0.000...
(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。
谢谢!
【问题讨论】:
在 for 循环之后是否 volumeViewSlider 可能为零? 【参考方案1】:在您的代码中,当您调用 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];
【讨论】:
以上是关于iOS9如何改变音量?的主要内容,如果未能解决你的问题,请参考以下文章