Iphone MPMoviePlayerController和HTTP实时流媒体
每个人。我正试图弄清楚如何使用MPMoviePlayerController播放直播流。对于测试,我使用苹果测试流样本。 它在UIWebView中工作得很好,但我无法让它与MPMoviePlayerController一起工作。这是我的一段代码:Iphone MPMoviePlayerController和HTTP实时流媒体,iphone,mpmovieplayercontroller,Iphone,Mpmovieplayercontroller,每个人。我正试图弄清楚如何使用MPMoviePlayerController播放直播流。对于测试,我使用苹果测试流样本。 它在UIWebView中工作得很好,但我无法让它与MPMoviePlayerController一起工作。这是我的一段代码: NSURL *mediaURL = [NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbopall.html"]; 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];
实际上,控制器接收MPMoviePlayerPlaybackDidFinish通知而不播放任何内容。问题在哪里 在
NSNotification
中尝试object:mp
而不是object:nil
,您的问题可能是URLMPMoviePlayerController
希望URL直接指向要播放的文件。您正在为电影播放器无法理解的HTML
页面提供URL。这就是为什么它可以在UIWebView
中工作,因为web浏览器可以理解HTML
。如果您想了解更多有关错误的信息,可以通过以下操作检查错误,引用苹果的文档:
要检查URL加载中的错误,
报名参加
MPMoviePlayerContentPreloadFinishNotification
或
MPMoviePlayerPlaybackDidFinishNotification
通知。如果出现错误,这些
通知包含一个N错误
对象使用@“error”可用
输入通知的userInfo
字典
它看起来像:
- (void) moviePlayBackDidFinish:(NSNotification*)notification {
NSError *error = [[notification userInfo] objectForKey:@"error"];
if (error) {
NSLog(@"Did finish with error: %@", error);
}
}
如果您想尝试播放该示例,您可以尝试直接访问流的URL,该URL为:@Andrew:
以下是苹果公司的HTTP直播文档,包括示例代码
Dung.您应该使用直接链接播放列表文件:
非常感谢-url才是真正的问题。还有一个问题:MPMoviePlayerController-这是播放实时音频流(如互联网广播)的正确选择吗?我搜索了实现HTTP实时流媒体的方法,得出结论,MoviePlayer是我需要的东西。不客气。我自己没有做过任何流媒体,所以我无法评论哪种方法是最好的。”***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因是:“一个AVPlayerItem不能与AVPlayer的多个实例相关联”
NSURL *mediaURL = [NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"];
MPMoviePlayerController *mediaPlayer = [[MPMoviePlayerController alloc] initWithContentURL:mediaURL];