Чтобы ответить на вопрос brush51 в:
Как я могу сделать это? просто измените объем DEVICE?
Как 0x7fffffff предложил:
Вы не можете изменить громкость устройства программно, однако MPVolumeView (объем слайдера) есть, чтобы изменить громкость устройства, но только через взаимодействие с пользователем.
Так, Apple рекомендует использовать MPVolumeView
, так что я пришел с этим:
Добавить volumeSlider
недвижимость:
@property (nonatomic, strong) UISlider *volumeSlider;
Init MPVolumeView
и добавить где-то на ваш взгляд (может быть скрыто, без рамки , или пустые из-за showsRouteButton = NO
и showsVolumeSlider = NO
):
MPVolumeView *volumeView = [MPVolumeView new];
volumeView.showsRouteButton = NO;
volumeView.showsVolumeSlider = NO;
[self.view addSubview:volumeView];
Найти и сохранить ссылку на UISlider
:
__weak __typeof(self)weakSelf = self;
[[volumeView subviews] enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
if ([obj isKindOfClass:[UISlider class]]) {
__strong __typeof(weakSelf)strongSelf = weakSelf;
strongSelf.volumeSlider = obj;
*stop = YES;
}
}];
Добавить цель действия для UIControlEventValueChanged
:
[self.volumeSlider addTarget:self action:@selector(handleVolumeChanged:) forControlEvents:UIControlEventValueChanged];
А затем обнаружить объем изменения (т.е. от регуляторов громкости аппаратного обеспечения):
- (void)handleVolumeChanged:(id)sender
{
NSLog(@"%s - %f", __PRETTY_FUNCTION__, self.volumeSlider.value);
}
, а также наоборот, вы можете установить громкость:
self.volumeSlider.value = < some value between 0.0f and 1.0f >;
Надеется, что это помогает (и что компании Apple не удаляет MPVolumeSlider из MPVolumeView).
Примечание: это устарело в iOS 7 –
http://stackoverflow.com/a/24993026/2380455 – ambientlight