2013-04-30 175 views
0

我在我的VideosView.h中导入了MPMoviePlayerController。 在我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]; 

我发现#2这个例子中,却无法得到它的工作。链接到我的视频是正确的(是的,它在图像文件夹中)。我的屏幕上显示一个500×500像素的黑色矩形(课程框架),但没有播放视频。

有些帮助会很大。 W.

回答

2

定义myPlayer对象全球

在你的代码

,该myPlayer的生活与变量的作用域结束。如果你在一个方法内创建。玩家以该方法的范围结束。

@property(nonatomic, strong) MPMoviePlayerController *myPlayer; 

然后初始化从任何你想要的,

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

真棒!努力可以在本地做到这一点。谢谢! – 2013-04-30 19:27:49

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; 

    } 

}