【问题标题】:Video not showing in iPhone Simulator (but I can hear audio from the video)iPhone 模拟器中未显示视频(但我可以听到视频中的音频)
【发布时间】:2010-11-02 03:00:41
【问题描述】:

我是 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];
}

任何建议都会很棒!

【问题讨论】:

    标签: iphone video uitabbarcontroller ios-simulator mpmovieplayercontroller


    【解决方案1】:

    【讨论】:

    • 我在阅读/理解文档方面还不是最出色的...您有使用 MPMoviePlayerViewController 的代码示例吗?
    • 试试stackoverflow问题stackoverflow.com/questions/4077096/…
    • 我从您上面提供的示例中完全复制了代码并添加了建议的代码:
    • [moviePlayerViewController 播放]; [窗口添加子视图:MPMoviePlayerViewController.view];
    • 对不起,我不是故意发送两个 cmets。我从示例中复制了代码并添加了以下代码:[moviePlayerViewController play]; [窗口添加子视图:MPMoviePlayerViewController.view];但我得到两个错误:第一个错误 - “'window' undeclared。”第二个错误-“MPMoviePlayerViewController 可能无法响应'-play'”有什么建议吗?
    【解决方案2】:

    您似乎没有将电影视图添加到主视图中。您需要添加如下内容:

        ...
        [[moviePlayer view] setFrame:[self view] bounds]];
        [[self view] addSubview:[moviePlayer view]]; 
        [moviePlayer play];
    }
    

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

    【讨论】:

      【解决方案3】:

      根据我的经验,视频不会显示在 sim 卡中。但是,音频会。 (这是一种改进,因为以前两者都不会玩。)

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

      【讨论】:

      • 看起来你缺少 [self presentMoviePlayerViewControllerAnimated:moviePlayer]; (见亚伦桑德斯评论)
      【解决方案4】:

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

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

      正确的内存管理(即最佳实践),您可以使用 ivar 来做到这一点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-08
        • 1970-01-01
        • 2011-01-12
        • 1970-01-01
        • 2013-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多