ipad - 如何使用 ipad 上的控件在外部显示器上输出视频?

标签 ipad mpmovieplayer vga

目前,当从 iPad 将视频输出到外部显示器时,它会将控件和所有内容移动到外部显示器。这没有用,因为当控件位于外部显示器上时您无法控制电影。以下是我们应用中的一些代码片段。

这是屏幕设置代码:(一个名为 setupExternalScreen 的方法)

if ([[UIScreen screens] count] > 1) {
    external_disp = [[UIScreen screens] objectAtIndex:1];
    [external_disp setCurrentMode:[[external_disp availableModes] objectAtIndex:0]];
    self.external_window = [[UIWindow alloc] init];
    external_window.screen = external_disp;
    [external_window makeKeyAndVisible];
}

这是 MPMoviePlayerViewController 的创建:

[self setupExternalScreen]; //Calls the code above
MPMoviePlayerViewController *mpv = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
[self presentMoviePlayerViewControllerAnimated:mpv];

我也有一个 MPMoviePlayerController 并且也试过这个:

self.moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerDidFinish:) name:MPMoviePlayerDidExitFullscreenNotification object:[self moviePlayer]];
[self.view addSubview:moviePlayer.view];

if (!external_window) {
    [self setupExternalScreen];
}
if (external_window) {
    [external_window addSubview:moviePlayer.view];
} 
[moviePlayer setControlStyle:MPMovieControlStyleDefault];

[moviePlayer setFullscreen:YES];// animated:NO];

if (![moviePlayer isPreparedToPlay]) [moviePlayer prepareToPlay];
[moviePlayer play];

目前使用第二个实现,同时添加到 self.view 和 external_window 它将在外部显示器上显示视频(带控件)并且 iPad 屏幕看起来除了状态栏在电影播放时消失之外什么都没有发生控件淡出。我还尝试将 moviePlayer.view 添加到 self.view 中,它会闪烁一些类似于“在电视上显示内容”消息的效果,然后继续在 iPad 上播放电影。目前,视频是通过按下按钮启动的。使用模拟器和 TV Out 选项,因为它更容易调试。 Xcode 版本 3.2.5 和实际设备上的最新版本的 iOS。这怎么能解决?它的行为应该类似于 iPad 上的 YouTube 应用。

最佳答案

执行此操作的简单方法是使用 UIWebView。它会自动检测外接显示器,并在那里显示视频,同时保持设备上的标准播放控件。

下面是一些示例代码:

- (void)embedInternalVideo:(CGRect)frame {
    NSBundle *bundle = [NSBundle mainBundle];
    NSString* html = @"<video src=\"sample_iPod.m4v\" width=640 height-480 controls autoplay></video>";
    if (videoView == nil) {  
        videoView = [[UIWebView alloc] initWithFrame:frame];  
        [self.view addSubview:videoView];  
    }  
    [videoView loadHTMLString:html baseURL:[bundle resourceURL]];      
}

关于ipad - 如何使用 ipad 上的控件在外部显示器上输出视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4621293/

相关文章:

ios - UITableView 背景颜色在 iPad 上总是白色

ios - MPMoviePlayerController 在启动前显示空白屏幕?

IOS : MPVideoView, 它的 Controller 和委托(delegate)是什么

c - 在 C 的 DOSBOX 中没有可用于 malloc 的内存

assembly - 使用 16 位模式打印字母,无需 BIOS 例程

c - 在 C : OSdev 中绘制像素

iPhone/iPod 和 iPad - 通用应用程序的限制

ipad - iOS-Masterviewcontroller 不显示

iphone - 阅读iOS bundle 信息

ios - 确定 currentPlaybackTime 是否为提示点