【问题标题】:MPMoviePlayer not playing videoMPMoviePlayer 不播放视频
【发布时间】:2013-10-02 18:01:41
【问题描述】:

MPMoviePlayer 没有播放视频。我正在运行 iOS 7 并在设备和模拟器上遇到同样的错误:

2013-10-02 12:49:18.246 xxxx[688:60b] _itemFailedToPlayToEnd: {
kind = 1;
new = 2;
old = 0;

}

我尝试从互联网和文件系统播放视频,但没有成功。我的代码非常简单:

    self.moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://stream.qtv.apple.com/events/mar/123pibhargjknawdconwecown/12oihbqeorvfhbpiubqnfv3_650_ref.mov"]];
    self.moviePlayer.view.frame = self.view.bounds;
    self.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;
    [self.view addSubview:self.moviePlayer.view];
    [self.moviePlayer prepareToPlay];

列出的 URL 是一部有效的电影: http://stream.qtv.apple.com/events/mar/123pibhargjknawdconwecown/12oihbqeorvfhbpiubqnfv3_650_ref.mov

我也尝试过使用 MPMoviePlayerViewController,但也没有用。

【问题讨论】:

标签: iphone ios video ios7 mpmovieplayer


【解决方案1】:

MPMovieSourceTypeStreaming 在 iOS 7 上似乎有问题。在我的应用程序上,我正在从网络上流式传输视频(和你一样),这个源类型的问题消失了:

self.moviePlayer.movieSourceType = MPMovieSourceTypeFile;

我知道这很奇怪,因为我们正在流式传输视频,但这是唯一适合我的解决方案。

希望对你有帮助:)

【讨论】:

    【解决方案2】:

    1.将mov文件改为mp4文件,播放器好像不支持mov文件

    2.删除代码self.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;

    或更改为 self.moviePlayer.movieSourceType = MPMovieSourceTypeFile;

    3.添加代码[self.moviePlayer setFullscreen:YES];之后 [self.view addSubview:self.moviePlayer.view];

    注意:一定要注意顺序,否则只能听到声音不能看电影

    如果你想使用 MPMoviePlayerViewController,像这样:

     MPMoviePlayerViewController *moviePlayerViewController;
       moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://.../movie.mp4"]];//note:mp4 file
        [self presentMoviePlayerViewControllerAnimated:moviePlayerViewController];
    

    重要提示:如果 URL 错误,您也会得到同样的错误。 eg:这是错误

    moviePlayer=[[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"movie.mp4"]];
    

    纠正它:

    如果网址是网页网址,则如下所示:

    moviePlayer=[[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://..../movie.mp4"]];
    

    如果文件是本地文件,则如下:

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

    【讨论】:

      【解决方案3】:

      试试这个,抱歉回复晚了:

      NSURL    *fileURL    =   [NSURL URLWithString:@"file  url from the internet "];
          MPMoviePlayerViewController *moviePlayerController = [[MPMoviePlayerViewController alloc] initWithContentURL:fileURL];
      
          [moviePlayerController.moviePlayer setFullscreen:YES animated:YES];
          [moviePlayerController.moviePlayer.view setFrame: self.view.bounds];
          [moviePlayerController.moviePlayer setControlStyle:MPMovieControlStyleFullscreen];
          [moviePlayerController.moviePlayer setMovieSourceType:MPMovieSourceTypeFile];
      
          [self presentMoviePlayerViewControllerAnimated:moviePlayerController];
          [moviePlayerController.moviePlayer prepareToPlay];
          [moviePlayerController.moviePlayer play];
      

      【讨论】:

        猜你喜欢
        • 2012-12-06
        • 1970-01-01
        • 1970-01-01
        • 2018-11-15
        • 2017-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多