相关疑难解决方法(0)

当UIView帧更改时,视图内的AVPlayer图层不会调整大小

我有一个UIView包含AVPlayer显示视频的内容.更改方向时,我需要更改视频的大小和位置.

我对调整图层大小没有经验,所以我在调整视频大小时遇到​​了问题.

我首先创建AVPlayer并将其播放器添加到我的videoHolderView的图层:

NSURL *videoURL = [NSURL fileURLWithPath:videoPath];
self.avPlayer = [AVPlayer playerWithURL:videoURL];

AVPlayerLayer* playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.avPlayer];
playerLayer.frame = videoHolderView.bounds;
playerLayer.videoGravity = AVLayerVideoGravityResizeAspect;
playerLayer.needsDisplayOnBoundsChange = YES;

[videoHolderView.layer addSublayer:playerLayer];
videoHolderView.layer.needsDisplayOnBoundsChange = YES;
Run Code Online (Sandbox Code Playgroud)

然后,稍后,我将更改videoHolderView框架的大小和位置:

[videoHolderView setFrame:CGRectMake(0, 0, 768, 502)];
Run Code Online (Sandbox Code Playgroud)

此时,我需要avPlayer调整大小到这些相同的维度.这不会自动发生 - avPlayer在videoHolderView中保持小尺寸.

如果有人可以提供帮助,我真的很感激任何建议.

多谢你们.

objective-c calayer uiview avplayer

52
推荐指数
7
解决办法
6万
查看次数

标签 统计

avplayer ×1

calayer ×1

objective-c ×1

uiview ×1