【问题标题】:Play Video Inside Of CGPath or UIBezierPath在 CGPath 或 UIBezierPath 内播放视频
【发布时间】:2013-05-20 15:46:05
【问题描述】:

是否可以将视频剪辑到自定义的 CGPath?我意识到 UIBezierPath 实际上只是一个包装器,但出于熟悉目的,我将其放入其中。

【问题讨论】:

    标签: ios video uibezierpath clipping cgpath


    【解决方案1】:

    我不了解视频,但将视图剪辑到路径的典型方法是创建一个CAShapeLayer,将其path 设置为您想要的任何路径,然后使用该CAShapeLayer 作为@您要剪辑的视图的layer 的987654324@。

    例如,要制作某个视图的圆形遮罩,您可以:

    UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(self.view.bounds.size.width / 2.0, self.view.bounds.size.height / 2.0)
                                                        radius:self.view.bounds.size.width * 0.4
                                                    startAngle:0
                                                      endAngle:2.0 * M_PI
                                                     clockwise:YES];
    CAShapeLayer *shapeLayer = [CAShapeLayer layer];
    shapeLayer.path = [path CGPath];
    
    self.myView.layer.mask = shapeLayer;
    

    【讨论】:

    • 那么性能方面,超出剪切区域的像素会发生什么?
    • @daveMac 我猜想这些像素是被计算出来的,然后被一些性能下降所掩盖(尽管我不确定它是否可以观察到)。这完全取决于实现的内部结构,我们不知道。我建议您试用一下面具,看看您是否可以看到任何明显的性能改进/下降。
    • 所以这行得通,但是移动它们的性能真的很差。关于如何实现这一点的任何其他想法?
    • @daveMac 是的,计算量非常大,远远超出了我想象的设备可以处理的范围。也许四处寻找第三方视频处理 API,但我不会抱太大希望。祝你好运。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多