2016-03-16 3 views
1

Предполагая, что код ниже, как бы я отобразил mov в movieView, пожалуйста? Нужно ли мне подклассировать AVPlayer таким образом или есть более простой способ достичь этого?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; 

ответ

2
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]; 

пожалуйста, попробуйте запустить этот code.Thanks

Смежные вопросы