And*_*rew 11 iphone mpmovieplayercontroller
每一个人.我正试图弄清楚如何使用MPMoviePlayerController播放实时流.对于测试我正在使用Apples测试流示例http://devimages.apple.com/iphone/samples/bipbopall.html.它在UIWebView中完美地工作,但我不能使它与MPMoviePlayerController一起工作.有我的代码:
NSURL *mediaURL = [NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbopall.html"];
MPMoviePlayerController *mp = [[MPMoviePlayerController alloc] initWithContentURL:mediaURL];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:nil];
[mp setControlStyle:MPMovieControlStyleFullscreen];
[mp setMovieSourceType:MPMovieSourceTypeStreaming];
[mp setFullscreen:YES];
[self.view addSubview:[mp view]];
[mp prepareToPlay];
[mp play];
Run Code Online (Sandbox Code Playgroud)
实际上,控制器接收MPMoviePlayerPlaybackDidFinishNotification而不播放任何内容.问题出在哪儿?
Rob*_*und 17
您的问题可能与URL有关.MPMoviePlayerController想要将URL直接发送到您想要播放的文件.您正在提供HTML电影播放器不理解的页面的URL .这就是为什么它可以在UIWebViewWeb浏览器理解的情况下工作HTML.如果您想了解有关错误的更多信息,可以查看Apple公司文档中引用的错误:
要检查URL加载中的错误,请注册MPMoviePlayerContentPreloadDidFinishNotification或MPMoviePlayerPlaybackDidFinishNotification通知.出错时,这些通知包含使用通知的userInfo字典中的@"error"键可用的NSError对象.
它看起来像:
- (void) moviePlayBackDidFinish:(NSNotification*)notification {
NSError *error = [[notification userInfo] objectForKey:@"error"];
if (error) {
NSLog(@"Did finish with error: %@", error);
}
}
Run Code Online (Sandbox Code Playgroud)
如果您想尝试播放该示例,可以尝试直接访问该流的URL,即:http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8
您应该使用直接链接播放列表文件:http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8
NSURL *mediaURL = [NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"];
MPMoviePlayerController *mediaPlayer = [[MPMoviePlayerController alloc] initWithContentURL:mediaURL];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24142 次 |
| 最近记录: |