视频没有在iPhone模拟器中显示(但我可以听到视频中的音频)

时间:2010-11-02 03:00:41

标签: iphone video uitabbarcontroller ios-simulator mpmovieplayercontroller

我是xcode,界面构建器和iphone模拟器的新手。我试图通过点击按钮在xcode中播放电影/视频(这非常简单)。我正在使用xcode 3.2.4和iphone模拟器4.1。

当我启动iPhone模拟器并单击按钮启动视频时,音频会播放,但视频会被隐藏。就好像视频位于标签栏后面(这是标签栏应用程序的一部分)。我不知道如何在前面播放视频。

以下是代码:

    -(IBAction)launchVideo2:(id)sender{

 NSString *movieFile;
 MPMoviePlayerController *moviePlayer;

 movieFile = [[NSBundle mainBundle] 
     pathForResource:@"IGDIs_Video_Picture_Naming_iPhone" ofType:@"mp4"];
 moviePlayer = [[MPMoviePlayerController alloc] 
       initWithContentURL: [NSURL fileURLWithPath: movieFile]];

 [[NSNotificationCenter defaultCenter] addObserver:self
            selector:@selector(playMediaFinished:)
             name:MPMoviePlayerPlaybackDidFinishNotification
              object:moviePlayer];
 moviePlayer.scalingMode = MPMovieScalingModeAspectFill;
 [moviePlayer play];
}

-(void)playMediaFinished:(NSNotification*)theNotification
{
 MPMoviePlayerController *moviePlayer=[theNotification object];

    [[NSNotificationCenter defaultCenter] removeObserver:self
             name:MPMoviePlayerPlaybackDidFinishNotification
              object:moviePlayer];

    [moviePlayer release];
}

任何建议都会很棒!

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

看起来您没有将电影视图添加到主视图中。您需要添加以下内容:

    ...
    [[moviePlayer view] setFrame:[self view] bounds]];
    [[self view] addSubview:[moviePlayer view]]; 
    [moviePlayer play];
}
播放之前

我假设一个launchVideo2方法在一个拥有主视图的UIViewController中。您可能需要更改[self view]以适合您的代码,以对应您希望电影播放的视图。

答案 2 :(得分:0)

根据我的经验,视频不会显示在SIM卡中。但是,音频会。 (这是一个改进,因为以前都不会发挥。)

尝试在设备上运行该应用。如果视频没有显示在那里,请在此处发布,我们将解决此问题。

答案 3 :(得分:0)

你的内存问题可能不相关:

  • 在第一种方法中,您不会释放播放器,这是一个局部变量。
  • 在第二种方法中,你释放你不拥有的播放器。

适当的内存管理(即最佳实践),您可以使用ivar执行此操作。