设置圆角AVPlayer视频帧

时间:2017-03-14 10:44:15

标签: avplayer avplayerlayer cornerradius

任何人都知道如何使用AVPlayer将圆角设置到视频帧? 我正在尝试这样做:

- (void)loadVideoWithPlayer:(AVPlayer*)playerVideo
{    
    dispatch_async(dispatch_get_main_queue(), ^{

        AVPlayerLayer *avLayer = [AVPlayerLayer playerLayerWithPlayer: playerVideo];
        [avLayer setCornerRadius:20];
        [avLayer setMasksToBounds:YES];

        [self.playerViewController setPlayer:playerVideo];

        [self insertSubview:self.playerViewController.view belowSubview:self.interactView];

        [self.playerViewController.player play];
    });
}

但它不起作用。我无法为AVPlayer.playerViewController.view设置圆角,因为视频帧可能不同。

1 个答案:

答案 0 :(得分:3)

我能做到这一点。这种变化甚至可以是动画的,从没有圆角到圆角。

我没有做任何与你不同的事情。目前使用iOS 10。 (已确认在iOS 9.3.5设备上工作。)

        self.viewVideo?.layer.masksToBounds = SHOW ? true : false
        self.viewVideo?.layer.cornerRadius = SHOW ? 10 : 0

我或许应该注意到viewVideo是UIView的子类。唯一真正的变化是将layerClass作为AVPlayerLayer.self

返回
override static var layerClass: AnyClass {
    return AVPlayerLayer.self
}

所以顺便说一句我不使用AVPlayerViewController等。我只是将我的UIView子类添加到我常用的UIViewController视图中。