根据视频的宽高比调整AVPlayerItem容器视图的大小

时间:2016-01-31 19:54:46

标签: ios objective-c avplayer aspect-ratio

我有一个名为videoView的容器UIView。我在该视图中添加了一个AVPLayerLayer。我不知道如何将videoView的大小调整为与avplayer图层相同的比例。使用videoGravity没有达到预期的效果。

AVPlayerItem* playerItem = [AVPlayerItem playerItemWithURL:path];

_videoPlayer = [[AVPlayer alloc] initWithPlayerItem:playerItem];

AVPlayerLayer *layer = [AVPlayerLayer layer];

[_avplayerLayer setPlayer:_videoPlayer];
[_avplayerLayer setBackgroundColor:[UIColor whiteColor].CGColor];
[_avplayerLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill];
[_avplayerLayer setFrame:_videoView.bounds];
[_videoView.layer addSublayer:_avplayerLayer];

我正在使用自动布局,我的布局可以适应_videoView高度的变化。

1 个答案:

答案 0 :(得分:3)

videoGravity不会更改视图的帧,而是用视频填充当前帧。

我认为您应该在播放之前检查每个视频resolution,并调整videoView的高度限制(应该是ivar并限制为videoView宽度)multipliervideoView宽度应限制在屏幕宽度。