我现在只是在电影播放器视频顶部显示视图/标签/按钮时遇到问题。在 Apple 的 MoviePlayer 示例项目中,您可以使用以下代码在视频顶部添加视图:
MoviePlayerAppDelegate *appDelegate = (MoviePlayerAppDelegate *)[[UIApplication sharedApplication] delegate];
// initialize a new MPMoviePlayerController object with the specified URL, and play the movie
[appDelegate initAndPlayMovie:[self localMovieURL]];
NSArray *windows = [[UIApplication sharedApplication] windows];
if ([windows count] > 1) {
// Locate the movie player window
UIWindow *moviePlayerWindow = [[UIApplication sharedApplication] keyWindow];
// Add our overlay view to the movie player's subviews so it is displayed above it.
[moviePlayerWindow addSubview:self.overlayView];
}
覆盖视图是一个包含请求的标签和按钮的视图。但是,当我将相同的代码应用于包含 .m3u8 文件的电影 url 时,它不会显示覆盖视图,例如http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8
NSURL *newMovieURL = [NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8">];
if (movieURL) {
NSLog(@"movieURL");
if ([movieURL scheme]) // sanity check on the URL
{ NSLog(@"[movieURL scheme]");
[appDelegate initAndPlayMovie:newMovieURL];
NSArray *windows = [[UIApplication sharedApplication] windows];
NSLog(@"windows count:%d", [windows count]);
if ([windows count] > 1) {
UIWindow *moviePlayerWindow = [[UIApplication sharedApplication] keyWindow];
[moviePlayerWindow addSubview:self.overlayView];
}
}
else NSLog(@"![movieURL scheme]"); } else
NSLog(@"!movieURL");
返回的窗口数仅为 1,而不是前面示例中的 2,即使电影播放也是如此。当我检查 url 是否正常时,movieURL 返回 null,但它仍然播放流式内容。我尝试删除窗口计数大于 1 的检查,但它仍然没有显示覆盖视图。
有人知道解决这个问题的方法吗?谢谢