MPMoviePlayerController没有完成加载,也没有播放流

时间:2013-01-31 16:57:56

标签: ios mpmovieplayercontroller m3u8

我正在尝试通过HTTP直播(使用Adobe Media Server)与MPMoviePlayerController播放视频。

- (void) viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    [self playVideo];
}

- (void) playVideo{
    NSURL *url = [NSURL URLWithString:@"http://192.168.10.27/hls-vod/test.mp4.m3u8"];
    MPMoviePlayerController *moviePlayer =
    [[MPMoviePlayerController alloc] initWithContentURL:url];
    moviePlayer.controlStyle = MPMovieControlStyleDefault;
    [self.view addSubview:moviePlayer.view];
    [moviePlayer setFullscreen:YES animated:YES];
    [moviePlayer play];
}

播放器正在正常启动,但它仍在加载并且无法开始播放视频。 我在我的设备下尝试了Safari上的一些链接,它运行正常!

你对这个问题有任何想法吗?

3 个答案:

答案 0 :(得分:3)

我找到了解决方案!我只需要在控制器的界面中声明moviePlayer并启动它一个playVideo方法,它就可以了!

答案 1 :(得分:0)

  1. 您是否尝试使用真实设备?有时MPMoviePlayerControllers无法在模拟器中正常播放。

  2. 您是否一次创建多个MPMoviePlayerController?您只能实例化一个MPMoviePlayerController,因此如果您需要播放第二个视频,第一个视频必须被销毁或重复使用。

  3. m3u8文件是播放列表,而不是视频文件,因此请查看该文件并确保其指向MPMoviePlayerController支持的文件类型。

  4. 另外:请注意,您正在使用viewDidAppear方法播放视频。请注意,只要用户退出MPMoviePlayerController上的全屏,就会调用它,因此您可能希望在那里包含更多逻辑来决定是否显示它。 (除非你总是想永远展示它。)

答案 2 :(得分:0)

(FIXED !!!!!)

我之前遇到过这个问题。

问题是由于静态播放器造成的。 尝试使用MPMoviewPlayer的属性

示例代码如下所示:

@interface YourViewController ()
@property (nonatomic, strong) MPMoviewPlayer *mp;
@end

@implementation YourViewController
- (void)playVideo {
    NSURL *movieURL = [NSURL URLWithString:@"http://the/url/playlist.m3u8"];
    self.mp = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];

    if (self.mp)
    {
        self.mp.view.frame = self.view.bounds;
        [self.view addSubview:self.mp.view];

        // save the movie player object
        [self.mp setFullscreen:YES];

        // Play the movie!
        [self.mp play];
    }
}

@end