我对此感到困惑。我有一个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
中执行此操作?
提前谢谢。
答案 0 :(得分:1)
在您的第一个代码部分中,您只有一个MPMoviePlayerController
,您应该在屏幕上显示它,并实际将MPMoviePlayerController
视图添加到您呈现的UIVIewcontroller
视图
[self.view addSubView:player.view]
在您的第二个代码部分中,您实际上UIViewController
其中MPMoviePlayerController
为composition design pattern。
答案 1 :(得分:1)
MPMoviePlayerController
可让您开始播放,停止和流式传输内容,这些内容可以合并到您自己的视图层次结构中。
由于iOS 3.2 MPMoviePlayerViewController
可用,它会为您处理演示文稿。
在上面的代码中,对于第一种情况,它不会添加到视图层次结构中。
例如:
[self.view addSubview:player.view];
另一个区别是MPMoviePlayerController
是MPMoviePlayerViewController
的属性。
将MPMoviePlayerController
视为一个为您提供控制权的玩家
除了控件之外,MPMoviePlayerViewController
还为您提供演示文稿。
希望这有帮助。