我有一个名为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高度的变化。
答案 0 :(得分:3)
videoGravity不会更改视图的帧,而是用视频填充当前帧。
我认为您应该在播放之前检查每个视频resolution,并调整videoView
的高度限制(应该是ivar并限制为videoView
宽度)multiplier。 videoView
宽度应限制在屏幕宽度。