2013-04-30 2 views
0

Я импортировал MPMoviePlayerController в свой VideoView.h. В моей VideosView.m я вставлять следующий код:Видео не отображается на экране

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 на 500 пикселей на экране (кадр), но видео не воспроизводится.

Некоторая помощь была бы замечательной. W.

ответ

2

Определение myPlayer объекта глобально

в вашем коде, жизнь myPlayer заканчивается с областью переменной. Если вы создали внутри метода. Действие этого метода заканчивается игроком.

@property(nonatomic, strong) MPMoviePlayerController *myPlayer; 

затем инициализации из любой точки вы хотите,

_myPlayer = [[MPMoviePlayerController alloc] init]; 
+0

Awesome! Думал, что это можно сделать локально. Спасибо! –

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; 

    } 

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