简体   繁体   English

AVPlayer添加影片以观看

[英]AVPlayer add movie to view

Assuming the code below, how would I display the mov within the movieView please? 假设下面的代码,我如何在movieView中显示mov? Do I need to subclass AVPlayer in this way or is there a more straightforward way of achieving this? 我是否需要以这种方式来继承AVPlayer,或者是否有更简单的方法来实现这一点?

UIView *movieView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 480, 1080)];
movieView.backgroundColor = [UIColor redColor];
[self.view addSubview:movieView];

NSURL *url = [[NSBundle mainBundle]URLForResource:@"Clock_stroke_04_Full" withExtension:@"mov"];
self.player = [AVPlayer playerWithURL:url];
[self.playerView setMovieToPlayer:self.player];
[self.player play];

    @implementation AVPlayerClass

    + (Class)layerClass
    {
        return [AVPlayerLayer class];
    }

- (AVPlayer*)player
    {
        return [(AVPlayerLayer*)[self layer] player];
    }

    -(void)setMovieToPlayer:(AVPlayer *)player
    {
        [(AVPlayerLayer*)[self layer] setPlayer:player];
    }

    @property (nonatomic, retain) AVPlayer *player;
    @property (nonatomic, retain) AVPlayerClass *playerView;
AVAsset *demoAsset =[AVAsset assetWithURL:self.videoUrl];
AVPlayerItem *tAVPlayerItem = [[AVPlayerItem alloc] initWithAsset:demoAsset];
AVPlayer* demoAVPlayer = [[AVPlayer alloc] initWithPlayerItem:tAVPlayerItem];
AVPlayerLayer *demoAVPlayerLayer=[AVPlayerLayer playerLayerWithPlayer:demoAVPlayer];
demoAVPlayerLayer.frame = self.videoCollageView.frame;
demoAVPlayerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
[self.videoCollageView.layer addSublayer:demoAVPlayerLayer];
[demoAVPlayer seekToTime:kCMTimeZero];
[demoAVPlayer play];

please try to run this code.Thanks 请尝试运行此代码。谢谢

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM