AVPlayer изменение громкости, вертикальный слайдер

Есть ли способ изменить громкость на avplayer с помощью вертикального ползунка, MPVolumeView просто горизонтальный, и, похоже, не существует способа сделать это.
Я мог бы использовать собственный ползунок: на iOS7 у нас есть громкость свойство для взаимодействия, на iOS6 кажется, что единственным решением является трюк AudioMix, но последний, похоже, работает только с "файловыми" треками, а не с потоковым контентом (мне нужно их использовать).
Кто-то придумал?


person Andrea    schedule 05.10.2014    source источник
comment
Может быть, попробовать трансформировать MPVolumeView?   -  person amergin    schedule 06.10.2014
comment
При использовании автоматического макета у вас возникнет серьезная проблема   -  person Andrea    schedule 07.10.2014
comment
Да, не знаю, как это сработает, потому что я не пробовал. Если я найду время для тестирования, я вернусь к вам. Возможно, вы разместите MPVolumeView внутри не повернутого представления, на котором выполнены все функции автоматического раскладки. В любом случае это будет провал.   -  person amergin    schedule 07.10.2014
comment
Если Autolayout является проблемой, почему бы просто не создать представление контейнера с правильной шириной, затем добавить MPVolumeView в качестве подпредставления и применить преобразование?   -  person ChrisH    schedule 07.10.2014
comment
@ChrisH, это может сработать, я разберусь с этим, спасибо +   -  person Andrea    schedule 07.10.2014


Ответы (2)


У меня это сработало (iPhone 5, iOS 8.3):

MPVolumeView *volumeView = [[MPVolumeView alloc] initWithFrame:CGRectMake(225, 270, 160, 30)];

CGAffineTransform sliderRotation = CGAffineTransformIdentity;
sliderRotation = CGAffineTransformRotate(sliderRotation,-(M_PI / 2));
volumeView.transform = sliderRotation;

[self.view addSubview:volumeView];
person frakman1    schedule 11.06.2015
comment
У меня было представление-заполнитель в раскадровке, в которое я добавил MPVolumeView в качестве подпредставления. Мне нужно было убедиться, что центр MPVolumeView был центром этого представления, чтобы вращение было правильным. - person Gary Makin; 08.12.2015

Это сработало для меня в IOS 8.4, создав подкласс MPVolumeView и поместив UIView в файл XIB в нужную мне позицию.

Первый подкласс MPVolumeView.

@implementation UIPlayerVolume

- (void)awakeFromNib {
    [super awakeFromNib];

    CGRect originalFrame = self.frame;

    self.translatesAutoresizingMaskIntoConstraints = YES;

    CGAffineTransform sliderRotation = CGAffineTransformIdentity;
    sliderRotation = CGAffineTransformRotate(sliderRotation,-(M_PI / 2));
    self.transform = sliderRotation;

    self.frame = originalFrame;
}

@end
person zevarito    schedule 10.09.2015