Jor*_*kum 15 iphone xcode cglayer avplayerlayer swift
我正在尝试将AVPlayerLayer添加到UIView
self.player = AVPlayer(URL: NSURL(fileURLWithPath: path!))
self.playerLayer = AVPlayerLayer(player: player);
self.playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
self.playerLayer.frame = ctrVideo.bounds;
self.ctrVideo.layer.addSublayer(playerLayer);
player.play();
Run Code Online (Sandbox Code Playgroud)
这是视频的容器(蓝色):
我无法弄清楚为什么视频没有绑定到UIVIew坐标.如果我把它绑定到控制器的超级视图中,那就没关系.
alm*_*mas 28
当视图的帧发生变化时,子图层不会自动调整大小,您必须手动完成.您可以将UIView子类化以使其更容易.
class VideoContainerView: UIView {
var playerLayer: CALayer?
override func layoutSublayersOfLayer(layer: CALayer) {
super.layoutSublayersOfLayer(layer)
playerLayer?.frame = self.bounds
}
}
Run Code Online (Sandbox Code Playgroud)
然后在你的代码中:
self.player = AVPlayer(URL: NSURL(fileURLWithPath: path!))
self.playerLayer = AVPlayerLayer(player: player);
self.playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
self.playerLayer.frame = ctrVideo.bounds;
self.ctrVideo.layer.addSublayer(playerLayer);
self.ctrVideo.playerLayer = playerLayer;
player.play();
Run Code Online (Sandbox Code Playgroud)
只需确保将"ctrVideo"的类从UIView更改为VideoContainerView.
| 归档时间: |
|
| 查看次数: |
6157 次 |
| 最近记录: |