アプリ内で動画を再生するには

プロジェクト内にあるsample.m4vを再生するサンプルコードです。

#import <MediaPlayer/MediaPlayer.h>
- (void)playMovie {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"m4v"];
    NSURL *url = [NSURL fileURLWithPath:path];
    MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:url];
    // MoviePlayerの設定
//    player.scalingMode = MPMovieScalingModeAspectFill;
//    player.controlStyle = MPMovieControlStyleNone;
    
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(finishPreload:)
                                                 name:MPMediaPlaybackIsPreparedToPlayDidChangeNotification
                                               object:player];
    
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(finishPlayback:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:player];
    // viewに追加
    [player.view setFrame:CGRectMake(0, 0, 320, 200)];
    [self.view addSubview:player.view];
}

- (void)finishPreload:(NSNotification *)aNotification {
    MPMoviePlayerController *player = [aNotification object];
    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:MPMediaPlaybackIsPreparedToPlayDidChangeNotification
                                                  object:player];
    [player play];
}

- (void)finishPlayback:(NSNotification *)aNotification {
    MPMoviePlayerController *player = [aNotification object];
    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:MPMoviePlayerPlaybackDidFinishNotification
                                                  object:player];
    [player stop];
    [player release];
}

事前にプロジェクトにMediaPlayer.frameworkを追加しておく必要があります。手順は以下の通りです。

  1. Xcodeのグループとファイルにある[Frameworks]を右クリックし、[追加]-[既存のフレームワーク...]を選択する
  2. 一覧から[MediaPlayer.framework]をを選択し、[追加]ボタンをクリックする