【问题标题】:Moving from MPMoviePlayerViewController to AVPlayer and streaming m3u8从 MPMoviePlayerViewController 移动到 AVPlayer 和流式传输 m3u8
【发布时间】:2016-03-30 22:26:48
【问题描述】:

我正在尝试从 MPMoviePlayerViewController 切换到 AVPlayer 以在我的实现中播放视频,看起来与此类似

NSURL *movieURL = [NSURL URLWithString:@"http://example.com/somefile.m3u8"];
movieController = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL];
movieController.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;
[self presentMoviePlayerViewControllerAnimated:movieController];
[movieController.moviePlayer play];

我的AVPlayer 版本播放所有内容,但所需的m3u8 流除外。它设法找到文件,AVPlayerViewController 显示正确的文件持续时间,但挂起并显示活动指示,并且从未真正开始播放。

NSURLComponents *comp = [NSURLComponents componentsWithString:url.absoluteString];

AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:comp.URL options:nil];
AVAssetResourceLoader *loader = asset.resourceLoader;
[loader setDelegate:self queue: dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0)];
AVPlayerItem *playerItem = [[AVPlayerItem alloc] initWithAsset:asset];
self.player = [AVPlayer playerWithPlayerItem:playerItem];

我有一个状态观察者,它最终会在AVPlayer 的状态为ReadyToPlay 时播放。 我无法想象AVPlayer 可以播放MPMoviePlayerController 可以播放的所有内容,那么AVPlayer 版本的正确实现如何使其正常工作。

【问题讨论】:

    标签: objective-c mpmovieplayercontroller avplayer m3u8


    【解决方案1】:

    就像在您之前的代码中一样(您在其中执行[movieController.moviePlayer play];
    我认为你应该启动你的播放器。
    [self.player play];.

    【讨论】:

      猜你喜欢
      • 2016-02-27
      • 2011-02-12
      • 2016-01-21
      • 2014-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-05
      相关资源
      最近更新 更多