2743


[**Paper by FiftyThree App**](https://www.fiftythree.com/paper)
の初回起動時に表示されるようなVideoViewを作りたいと思っています。

そこで自分で単純なソースコードを組んでみました。

<https://github.com/kawai-hiroyuki/KHFVideoViewBeta>

しかし、私の作ったのはViewが角が丸い四角形になりません。

通常ならUIView.layerに

[code]

    layer.cornerRadius = 16.0;
    
[/code]

というコードを追加すれば、UIViewでは角が丸くなるのですが、反応しません。

どなたかアドバイスをいただけませんか？


CC BY-SA 3.0
2014-12-28T09:39:57.513
2738
2014-12-28T12:30:45.183
2014-12-28T12:30:45.183
560
560
question
ios objective-c video
AVPlayerLayerの角を丸くするには？


CAShapeLayer を使うのがオススメです

[code]

    UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:20];
    CAShapeLayer *layer = [CAShapeLayer layer];
    layer.frame = rect;
    layer.path = path.CGPath;
    self.layer.mask = layer;
    
[/code]

と


CC BY-SA 3.0
2014-12-28T10:19:00.717
2742
2014-12-28T10:19:00.717
5854
2738
answer


あまりきれいなコードではありませんが、`cornerRadius`を利用する場合のサンプルです。

[code]

    layer.cornerRadius = 10.0;
    layer.masksToBounds = YES;
    
    // Layerのboundsをビデオのサイズに合わせる
    CGSize videoSize = [[[_videoPlayer.currentItem.asset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] naturalSize];
    CGRect bounds = layer.bounds;
    bounds.size = CGSizeMake(bounds.size.width, bounds.size.width * (videoSize.height / videoSize.width));
    layer.bounds = bounds;
    
[/code]


CC BY-SA 3.0
2014-12-28T11:18:39.247
2743
2014-12-28T11:31:22.597
2014-12-28T11:31:22.597
3639
3639
2738
answer