Я использую следующий код, чтобы показать видео на весь экран на моем UIView:Stretch видео на AVPlayerLayer
- (void)playMovie:(NSString *)name :(NSString *)type
{
NSURL *movieURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:name ofType:type]];
self.movieAsset = [AVAsset assetWithURL:movieURL];
self.movieItem = [[AVPlayerItem alloc] initWithAsset:self.movieAsset];
self.moviePlayer = [[AVPlayer alloc] initWithPlayerItem:self.movieItem];
self.moviePlayer.actionAtItemEnd = AVPlayerActionAtItemEndNone;
self.movieLayer.videoGravity = AVLayerVideoGravityResize;
self.movieLayer = [AVPlayerLayer playerLayerWithPlayer:self.moviePlayer];
[self.movieLayer setFrame:self.view.frame];
[self.view.layer addSublayer:self.movieLayer];
[self.moviePlayer addObserver:self forKeyPath:@"status" options:0 context:nil];
// Schedule stop after 6 seconds
[NSTimer scheduledTimerWithTimeInterval:6.0 target:self selector:@selector(stopCurrentMovie:) userInfo:nil repeats:NO];
}
видео играет, но он не заполняет (растягиваться при необходимости) на весь экран , но он только изменяет размеры, сохраняя соотношение ширины и высоты: я пробовал все три значения «videoGravity» ... ничего не меняется.
Как я могу решить? Спасибо
использование AffineTransform масштабировать его, чтобы заполнить экран – santhu
Не существует более простой способ? Потому что я должен жестко программировать параметры масштабирования для каждого поддерживаемого устройства/экрана. Но я все равно попробую –
Он работает! Но я думаю, что я выберу два разных видео, по одному для каждого экрана устройства (3,5 дюйма и 4 дюйма). –