在iOS中播放流.m3u8音频文件

时间:2014-06-22 18:37:09

标签: ios objective-c mpmovieplayercontroller mpmovieplayer m3u8

我对此感到困惑。我有一个URL,其中包含一个.m3u8文件,当我尝试使用以下内容流式传输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中执行此操作? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

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

[self.view addSubView:player.view] 

在您的第二个代码部分中,您实际上UIViewController其中MPMoviePlayerControllercomposition design pattern

答案 1 :(得分:1)

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

由于iOS 3.2 MPMoviePlayerViewController可用,它会为您处理演示文稿。

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

例如:

[self.view addSubview:player.view]; 

另一个区别是MPMoviePlayerControllerMPMoviePlayerViewController的属性。

MPMoviePlayerController视为一个为您提供控制权的玩家 除了控件之外,MPMoviePlayerViewController还为您提供演示文稿。

希望这有帮助。