AVPlayerLayer,

AVPlayerLayer

谈到底三个图层类型是AVPlayerLayer。固然它不是Core
Animation框架的一局部(AV前缀看上去像),AVPlayerLayer是有别的框架(AVFoundation)提供的,它和Core
Animation紧凑地构成在同步,提供了三个CALayer子类来展现自定义的始末类型。

AVPlayerLayer是用来在iOS上播报摄像的。他是高级接口举个例子MPMoivePlayer的尾巴部分达成,提供了体现录像的底层调节。AVPlayerLayer的选用一定简单:你可以用+playerLayerWithPlayer:主意创设贰个业已绑定了录制播放器的图层,大概您能够先创制四个图层,然后用player质量绑定叁个AVPlayer实例。

在我们起头在此以前,大家供给添加AVFoundation到大家的花色中。然后,清单6.15成立了三个简约的摄像播放器,图6.16是代码运转结果。

清单6.15 用AVPlayerLayer播音摄像

图片 1图片 2

 1 #import "ViewController.h"
 2 #import 
 3 #import 
 4 
 5 @interface ViewController ()
 6 
 7 @property (nonatomic, weak) IBOutlet UIView *containerView; @end
 8 
 9 @implementation ViewController
10 
11 - (void)viewDidLoad
12 {
13     [super viewDidLoad];
14     //get video URL
15     NSURL *URL = [[NSBundle mainBundle] URLForResource:@"Ship" withExtension:@"mp4"];
16 
17     //create player and player layer
18     AVPlayer *player = [AVPlayer playerWithURL:URL];
19     AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:player];
20 
21     //set player layer frame and attach it to our view
22     playerLayer.frame = self.containerView.bounds;
23     [self.containerView.layer addSublayer:playerLayer];
24 
25     //play the video
26     [player play];
27 }
28 @end

View Code

图片 3

 

图6.16 用AVPlayerLayer图层播放视频的截图

我们用代码创造了一个AVPlayerLayer,不过大家照例把它增加到了叁个器皿视图中,并不是一向在controller中的主视图上丰盛。那样其实是为着能够使用机动布局限制使得图层在最中间;不然,一旦器械被旋转了小编们将在手动重新放置地点,因为Core
Animation并不扶助自动大小和活动布局(见第三章『图层几何学』)。

当然,因为AVPlayerLayerCALayer的子类,它继续了父类的装有性情。大家并不会受限于要在三个矩形中播放录制;清单6.16示范了在3D,圆角,有色边框,蒙板,阴影等成效(见图6.17).

清单6.16 给录制增加转换,边框和圆角

 

图片 4图片 5

 1 - (void)viewDidLoad
 2 {
 3     ...
 4     //set player layer frame and attach it to our view
 5     playerLayer.frame = self.containerView.bounds;
 6     [self.containerView.layer addSublayer:playerLayer];
 7 
 8     //transform layer
 9     CATransform3D transform = CATransform3DIdentity;
10     transform.m34 = -1.0 / 500.0;
11     transform = CATransform3DRotate(transform, M_PI_4, 1, 1, 0);
12     playerLayer.transform = transform;
13     
14     //add rounded corners and border
15     playerLayer.masksToBounds = YES;
16     playerLayer.cornerRadius = 20.0;
17     playerLayer.borderColor = [UIColor redColor].CGColor;
18     playerLayer.borderWidth = 5.0;
19 
20     //play the video
21     [player play];
22 }

View Code

 

图片 6

 

AVPlayerLayer

提起底二个图层类型是AVPlayerLayer。就算它不是Core
Animation框架的一有个别(AV前缀看上去像),AVPlayerLayer是有别的框架(AVFoundation)提供的,它和Core
Animation紧密地结合在共同,提供了三个CALayer子类来展现自定义的原委类型。

AVPlayerLayer是用来在iOS上播放录制的。他是高端接口比方MPMoivePlayer的最底层达成,提供了体现录制的平底调控。AVPlayerLayer的运用一定轻巧:你能够用+playerLayerWithPlayer:艺术创设一个早已绑定了摄像播放器的图层,可能您能够先创建二个图层,然后用player质量绑定三个AVPlayer实例。

在大家发轫在此之前,我们须求增加AVFoundation到我们的品种中。然后,清单6.15成立了贰个简易的影片播放器,图6.16是代码运转结果。

清单6.15 用AVPlayerLayer广播摄像

图片 7图片 8

 1 #import "ViewController.h"
 2 #import 
 3 #import 
 4 
 5 @interface ViewController ()
 6 
 7 @property (nonatomic, weak) IBOutlet UIView *containerView; @end
 8 
 9 @implementation ViewController
10 
11 - (void)viewDidLoad
12 {
13     [super viewDidLoad];
14     //get video URL
15     NSURL *URL = [[NSBundle mainBundle] URLForResource:@"Ship" withExtension:@"mp4"];
16 
17     //create player and player layer
18     AVPlayer *player = [AVPlayer playerWithURL:URL];
19     AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:player];
20 
21     //set player layer frame and attach it to our view
22     playerLayer.frame = self.containerView.bounds;
23     [self.containerView.layer addSublayer:playerLayer];
24 
25     //play the video
26     [player play];
27 }
28 @end

View Code

图片 3

 

图6.16 用AVPlayerLayer图层播放录像的截图

咱俩用代码成立了一个AVPlayerLayer,不过大家依旧把它增加到了二个容器视图中,实际不是一向在controller中的主视图上加上。那样事实上是为着能够选拔机关布局限制使得图层在最中间;不然,一旦器材被旋转了我们就要手动重新放置地方,因为Core
Animation并不帮助自动大小和自动布局(见第三章『图层几何学』)。

当然,因为AVPlayerLayerCALayer的子类,它继续了父类的具备脾气。我们并不会受限于要在多个矩形中播放摄像;清单6.16示范了在3D,圆角,有色边框,蒙板,阴影等职能(见图6.17).

清单6.16 给摄像扩展转换,边框和圆角

 

图片 10图片 11

 1 - (void)viewDidLoad
 2 {
 3     ...
 4     //set player layer frame and attach it to our view
 5     playerLayer.frame = self.containerView.bounds;
 6     [self.containerView.layer addSublayer:playerLayer];
 7 
 8     //transform layer
 9     CATransform3D transform = CATransform3DIdentity;
10     transform.m34 = -1.0 / 500.0;
11     transform = CATransform3DRotate(transform, M_PI_4, 1, 1, 0);
12     playerLayer.transform = transform;
13     
14     //add rounded corners and border
15     playerLayer.masksToBounds = YES;
16     playerLayer.cornerRadius = 20.0;
17     playerLayer.borderColor = [UIColor redColor].CGColor;
18     playerLayer.borderWidth = 5.0;
19 
20     //play the video
21     [player play];
22 }

View Code

 

图片 6

 

谈到底我们将执教AVPlayerLayer。固然它不是Core Animaiton框架中的一片段,AVPlayerLayer是另一框架的事例(在此地是AVFoundation),它与Core Animation紧凑结合,提供了叁个CALayer子类来突显二个自定义内容类型。

AVPlayerLayer

终极三个图层类型是AVPlayerLayer。即便它不是Core
Animation框架的一某些(AV前缀看上去像),AVPlayerLayer是有别的框架(AVFoundation)提供的,它和Core
Animation紧凑地组合在联合,提供了贰个CALayer子类来显示自定义的内容类型。

AVPlayerLayer是用来在iOS上播报录制的。他是高端接口举例MPMoivePlayer的最底层实现,提供了呈现录制的平底调整。AVPlayerLayer的应用一定轻巧:你能够用+playerLayerWithPlayer:主意创造三个业已绑定了录像播放器的图层,可能您能够先创立三个图层,然后用player质量绑定三个AVPlayer实例。

在大家开端此前,我们必要增多AVFoundation到大家的体系中。然后,清单6.15创设了叁个简单易行的影片播放器,图6.16是代码运维结果。

清单6.15 用AVPlayerLayer播音摄像

图片 13

 1 #import "ViewController.h"
 2 #import 
 3 #import 
 4 
 5 @interface ViewController ()
 6 
 7 @property (nonatomic, weak) IBOutlet UIView *containerView; @end
 8 
 9 @implementation ViewController
10 
11 - (void)viewDidLoad
12 {
13     [super viewDidLoad];
14     //get video URL
15     NSURL *URL = [[NSBundle mainBundle] URLForResource:@"Ship" withExtension:@"mp4"];
16 
17     //create player and player layer
18     AVPlayer *player = [AVPlayer playerWithURL:URL];
19     AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:player];
20 
21     //set player layer frame and attach it to our view
22     playerLayer.frame = self.containerView.bounds;
23     [self.containerView.layer addSublayer:playerLayer];
24 
25     //play the video
26     [player play];
27 }
28 @end

View Code

图片 14

 

图6.16 用AVPlayerLayer图层播放摄像的截图

咱俩用代码创制了一个AVPlayerLayer,不过咱们照例把它增多到了贰个器皿视图中,并非一贯在controller中的主视图上加上。这样其实是为着能够利用机关布局限制使得图层在最中间;不然,一旦道具被旋转了作者们就要手动重新放置地方,因为Core
Animation并不扶助自动大小和活动布局(见第三章『图层几何学』)。

当然,因为AVPlayerLayerCALayer的子类,它继续了父类的享有性格。大家并不会受限于要在多少个矩形中播放摄像;清单6.16示范了在3D,圆角,有色边框,蒙板,阴影等效率(见图6.17).

清单6.16 给摄像扩张转换,边框和圆角

 

图片 15

 1 - (void)viewDidLoad
 2 {
 3     ...
 4     //set player layer frame and attach it to our view
 5     playerLayer.frame = self.containerView.bounds;
 6     [self.containerView.layer addSublayer:playerLayer];
 7 
 8     //transform layer
 9     CATransform3D transform = CATransform3DIdentity;
10     transform.m34 = -1.0 / 500.0;
11     transform = CATransform3DRotate(transform, M_PI_4, 1, 1, 0);
12     playerLayer.transform = transform;
13     
14     //add rounded corners and border
15     playerLayer.masksToBounds = YES;
16     playerLayer.cornerRadius = 20.0;
17     playerLayer.borderColor = [UIColor redColor].CGColor;
18     playerLayer.borderWidth = 5.0;
19 
20     //play the video
21     [player play];
22 }

View Code

 

图片 16

 

AVPlayerLayer 最终二个图层类型是
AVPlayerLayer 。固然它不是Core Animation框架的一局地(AV前缀看上去像),
AVPlayerLayer 是有其余框…

AVPlayerLayer用来在iOS上海人民广播电视台播录制。它是高层API如MPMoviePlayer的底层完成,提供摄像显示的最底层调控。AVPlayerLayer的使用也是极度直白的:你能够应用+playerLayerWithPlayer:措施创立二个早已绑定的录像图层的图层,或先创立一个图层然后选择player性子绑定AVPlayer实例。

在我们开头前,大家须要向大家项目中增加AVFoundation框架,因为它并不曾暗中同意项目模板中引进。然后看表6.15中开创简单录像播放器的例证。图6.16显得了播音中的录制播放器。

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注