0

MPMoviePlayerController を VideosView.h にインポートしました。VideosView.mi に次のコードを埋め込みます。

    NSString *path2 = [[NSBundle mainBundle] pathForResource:@"myVideo" ofType:@"mp4" inDirectory:@"images"];
    NSLog(@"%@", path2);

    MPMoviePlayerController *myPlayer = [[MPMoviePlayerController alloc] init];
    myPlayer.shouldAutoplay = YES;
    myPlayer.repeatMode = MPMovieRepeatModeOne;
    myPlayer.fullscreen = YES;
    myPlayer.movieSourceType = MPMovieSourceTypeFile;
    myPlayer.scalingMode = MPMovieScalingModeAspectFit;
    myPlayer.contentURL =[NSURL fileURLWithPath:path2];
    myPlayer.view.frame = CGRectMake(0, 0, 500, 500);
    myPlayer.scalingMode = MPMovieScalingModeFill;
    myPlayer.controlStyle = MPMovieControlModeDefault;

    [self addSubview:myPlayer.view];
    [myPlayer play];

Stackoverflow でこの例を見つけましたが、うまくいきません。私のビデオへのリンクは正しいです (はい、画像フォルダにあります)。画面 (もちろんフレーム) に 500 x 500 ピクセルの黒い四角形が表示されますが、ビデオが再生されません。

いくつかの助けは素晴らしいでしょう。W.

4

2 に答える 2

2

myPlayer オブジェクトをグローバルに定義する

あなたのコードでは、myPlayer の寿命は変数のスコープで終わります。メソッド内で作成した場合。プレーヤーは、そのメソッドのスコープで終了します。

@property(nonatomic, strong) MPMoviePlayerController *myPlayer;

次に、必要な場所から初期化します。

_myPlayer = [[MPMoviePlayerController alloc] init];
于 2013-04-30T19:22:43.037 に答える
1
    self.moviePlayerView = [[MPMoviePlayerViewController alloc]initWithContentURL:videoURL];
    movie = [self.moviePlayerView moviePlayer];

    movie.controlStyle = MPMovieControlStyleNone;

    [movie setControlStyle:MPMovieControlStyleFullscreen];

    self.moviePlayerView.moviePlayer.shouldAutoplay=YES;

    [movie prepareToPlay];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(playbackStateChanged)
                                                                                  name:MPMoviePlayerPlaybackStateDidChangeNotification object:nil];


    self.moviePlayerView.view.frame = CGRectMake(0.0f, 0.0f, 304.0f, 221.0f);

    [[self.moviePlayerView moviePlayer]play];


add bewlow..

 - (void) playbackStateChanged
 {
self.moviePlayerView.moviePlayer.shouldAutoplay=YES;

  MPMoviePlaybackState playbackState = [self.moviePlayerView.moviePlayer playbackState];

  switch (playbackState)
  {

    case MPMoviePlaybackStateStopped :

        break;

    case MPMoviePlaybackStatePlaying :


        break;

    case MPMoviePlaybackStateInterrupted :


        break;

    }

 }
于 2013-05-01T05:59:17.357 に答える