iOSのムービー再生MediaPlayerとAVPlayer

1684 ワード

iOSの開発では、電源を入れたアニメーションなど、映画を再生する必要がある場合、MediaPlayerを使って映画を再生するのに慣れています.使いやすいので、ずっと使っています.しかし、お客様の要求が厳しくなるにつれて、特にアニメーションやインタラクティブな効果の表現が厳しくなります.だから、一部のアニメで映画を挟んで一緒に演算すると、機械が動かないに違いない.したがってiOS 4の後、AVPlayerというカテゴリを使用してより細かい操作を行うことができます.
コメント:
MediaPlayerの映画はUIViewの中に置かれ、AVPlayerはAVPlayerLayerの中に置かれ、AVPlayerLayerはCALayerのサブカテゴリである.
MediaPlayerを使用する前に、MediaPlayerに参加することを忘れないでください.frameworkおよび#import AVPlayerを使用する前に、AVFoundationに参加することを忘れないでください.frameworkkおよび#import MediaPlayerを使用してムービーを再生する例を参照してください.
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"backspace" ofType:@"mov"];
    NSURL *sourceMovieURL = [NSURL fileURLWithPath:filePath];
 
    moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:sourceMovieURL];
    moviePlayer.view.frame=CGRectMake(0, 0, 1024, 768);
    moviePlayer.controlStyle=MPMovieControlStyleNone;
 
    // Play the movie!
    [self.view addSubview:moviePlayer.view];

AVPlayerでムービーを再生
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"backspace" ofType:@"mov"];
    NSURL *sourceMovieURL = [NSURL fileURLWithPath:filePath];
 
    AVAsset *movieAsset	= [AVURLAsset URLAssetWithURL:sourceMovieURL options:nil];
    AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:movieAsset];
    AVPlayer *player = [AVPlayer playerWithPlayerItem:playerItem];
    AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:player];
    playerLayer.frame = self.view.layer.bounds;
    playerLayer.videoGravity = AVLayerVideoGravityResizeAspect;
 
    [self.view.layer addSublayer:playerLayer];
    [player play];