首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在iOS中将视频裁剪到圆圈中?

在iOS中将视频裁剪到圆圈中?
EN

Stack Overflow用户
提问于 2015-04-03 02:01:38
回答 2查看 3.4K关注 0票数 4

我正在尝试裁剪一段视频,这是用iPhone相机拍摄的,然后把它放在UIImageView上。我一直在关注这个问题,所以我想知道如何在iOS中将视频裁剪成一个圆圈?现在我可以把这个视频放到另一个不寻常的录像上面。现在我想要的背景是图像,前景是剪裁的视频。我现在的主要问题是在我想要剪裁的那部分剪辑视频。我不能在这里发布所有的代码,但是这里是github的位置,进行修改的类称为CustomVideoCompositor.m https://github.com/mayoff/stackoverflow-28258270-video-in-oval-on-video/tree/master/video。我很难把它编辑成一个圆圈,我希望它是一个椭圆形,位于下半部,比宽更高。

编辑

我想要进行切割,以便只有在这部分的圆角矩形将被裁剪和可用。

EN

回答 2

Stack Overflow用户

发布于 2015-04-05 11:12:52

您需要使用AVPlayer,因为它使您能够同时播放多个视频,或者将视频显示在另一个视图之上。此外,通过使用AVPlayer和AVPlayerLayer,很容易使视频显示为圆形。(这里有一个很好的教程,可以了解更多信息:http://jacopretorius.net/2013/02/playing-video-in-ios.html)

下面是代码(用于目标-C):

在视图控制器.h文件中:

代码语言:javascript
复制
#import <AVFoundation/AVFoundation.h>

然后在viewDidLoad

代码语言:javascript
复制
[super viewDidLoad];

// Set up the image view first (the imageView is an IBOutlet)
self.imageView.image = [UIImage imageNamed:@"image"];
self.imageView.alpha = 0.2;

NSURL *url = [[NSBundle mainBundle] URLForResource:@"video" withExtension:@"mp4"];
AVPlayer *player = [AVPlayer playerWithURL:url];

CGFloat diameter = MIN(self.view.frame.size.width, self.view.frame.size.height) * 0.8;

AVPlayerLayer *layer = [AVPlayerLayer playerLayerWithPlayer:player];
layer.videoGravity = AVLayerVideoGravityResizeAspectFill;
layer.frame = CGRectMake((self.view.frame.size.width - diameter) / 2,
                         (self.view.frame.size.height - diameter) / 2,
                         diameter, diameter);

layer.cornerRadius = diameter / 2;
layer.masksToBounds = YES;

// Put the AVPlayerLayer on top of the image view.
[self.view.layer addSublayer:layer];

[player play];
票数 2
EN

Stack Overflow用户

发布于 2015-04-09 12:18:33

如果您只想要裁剪视频的视觉效果,而不需要修改视频文件,您可以简单地为您的视频层添加一个掩码。我是说CALayer mask属性。

你可以创建这样的圆圈面具:画黑色的矩形,然后画透明的圆圈。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29425220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档