определение размера кадра просмотра для AV Player ViewController в ios

Как воспроизвести видео в качестве фона в iOS? Я ответил на этот вопрос Как воспроизвести локальное видео с помощью Swift?, но AV Player ViewController является контроллером и не позволяет мне решать, где и насколько велик вид, содержащий видео. Он всегда принимает некоторые предопределенные значения.


person potato    schedule 26.02.2016    source источник


Ответы (1)


У меня это работает для проекта, который я сделал, но не с AVPlayerViewController — просто с обычным AVPlayer, который я добавляю в слой представления. У меня есть представление коллекции, но вы можете просто вставить видео на слой, где хотите. Попробуйте что-то вроде этого:

NSString *filepath = [[NSBundle mainBundle] pathForResource:@"my_local_file" ofType:@"mp4"];
NSURL *fileURL = [NSURL fileURLWithPath:filepath];
self.avPlayerItem = [AVPlayerItem playerItemWithURL:fileURL];
self.avPlayer = [AVPlayer playerWithPlayerItem:self.avPlayerItem];
self.avPlayerLayer = [AVPlayerLayer playerLayerWithPlayer:self.avPlayer];
self.avPlayerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
self.avPlayerLayer.frame = self.view.bounds;
[self.view.layer insertSublayer:self.avPlayerLayer below:self.collectionView.layer];
// could also try [self.view.layer insertSublayer:self.avPlayerLayer atIndex:0];
[self.avPlayer play];

По сути, установите для AVPlayerLayer.frame нужный размер.

person Gordonium    schedule 26.02.2016
comment
Не подходит к моей рамке просмотра. На мой взгляд, у меня много подвидов. Есть ли проблема с viewheirarchy - person Vineesh TP; 16.11.2017