【问题标题】:Playing Stream .m3u8 Audio File in iOS在 iOS 中播放流 .m3u8 音频文件
【发布时间】:2014-06-22 18:37:09
【问题描述】:

我对此感到困惑。我有一个包含 .m3u8 文件的 URL,当我尝试通过以下方式流式传输 URL 时:

MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];

[player setControlStyle:MPMovieControlModeVolumeOnly];
[player setFullscreen:YES];
[player prepareToPlay];
[player play];

似乎我不能,因为什么都没有开始播放。但是当我使用时:

 MPMoviePlayerViewController* controller = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL];
[self presentViewController:controller animated:YES completion:nil];

viewcontroller 开始播放文件。有什么不同?为什么我不能在我的viewcontroller 中执行此操作? 提前致谢。

【问题讨论】:

  • 你也可以尝试定义一个strong属性指向MPMoviePlayerController对象,否则它会被立即释放,因此它不会播放。 @property (strong, nonatomic) MPMoviePlayerController *player;

标签: ios objective-c swift m3u8 mpmovieplayer


【解决方案1】:

MPMoviePlayerController 可让您开始播放、停止和流式传输内容,这些内容旨在合并到您自己的视图层次结构中。

自从 iOS 3.2 MPMoviePlayerViewController 可用以来,它会为您处理演示文稿。

在您上面的代码中,对于第一种情况,它没有添加到视图层次结构中。

例如:

[self.view addSubview:player.view]; 

另一个区别是MPMoviePlayerControllerMPMoviePlayerViewController 的属性。

MPMoviePlayerController 想象成一个为您提供控制和 MPMoviePlayerViewController 不仅为您提供控件,还为您提供演示。

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    在您的第一个代码部分中,您只有一个 MPMoviePlayerController,您应该在屏幕上显示它,并将 MPMoviePlayerController 视图添加到您提供的 UIVIewcontroller 的视图中

    [self.view addSubView:player.view] 
    

    在您的第二个代码部分中,您实际上有 UIViewControllerMPMoviePlayerController 在它作为 composition design pattern

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 2014-04-04
      • 1970-01-01
      相关资源
      最近更新 更多