根据视频的纵横比调整 AVPlayerItem 容器视图的大小
Posted
技术标签:
【中文标题】根据视频的纵横比调整 AVPlayerItem 容器视图的大小【英文标题】:resize AVPlayerItem container view based on aspect ratio from video 【发布时间】:2016-01-31 19:54:45 【问题描述】:我有一个名为 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】:videoGravity 不会改变视图的帧,而是用视频填充当前帧。
我认为您应该在播放之前检查每个视频的 resolution 并调整 videoView
的高度约束(应该是一个 ivar 并约束到 videoView
的宽度)multiplier。 videoView
宽度应限制为屏幕宽度。
【讨论】:
谢谢!再加上这个答案,我得到了它的工作:***.com/a/34643565/1392515以上是关于根据视频的纵横比调整 AVPlayerItem 容器视图的大小的主要内容,如果未能解决你的问题,请参考以下文章