之前,我使用这种方法以编程方式设置音量:
MPVolumeView *volumeView = [[MPVolumeView alloc] init];
UISlider *volumeViewSlider = nil;
for (UIView *view in [volumeView subviews])
{
if ([view.class.description isEqualToString:@"MPVolumeSlider"])
{
volumeViewSlider = (UISlider *)view;
break;
}
}
[volumeViewSlider setValue:0.5 animated:YES];
[volumeViewSlider sendActionsForControlEvents:UIControlEventTouchUpInside];
在 iOS 11.4 之前,它运行良好(即使在 iOS 11.3 上),但在 iOS 11.4 上却不行。音量值保持不变。有人可以帮助解决这个问题吗?谢谢。
最佳答案
在稍有延迟后更改 volumeViewSlider.value
即可解决问题。
- (IBAction)increase:(id)sender {
MPVolumeView *volumeView = [[MPVolumeView alloc] init];
UISlider *volumeViewSlider = nil;
for (UIView *view in volumeView.subviews) {
if ([view isKindOfClass:[UISlider class]]) {
volumeViewSlider = (UISlider *)view;
break;
}
}
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.01 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
volumeViewSlider.value = 0.5f;
});
}
Swift version
关于ios - 如何在 iOS 11.4 上以编程方式更改音量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50737943/