iOS 将 MPMoviePlayerController 镜像到电视并全屏播放电视屏幕
Posted
技术标签:
【中文标题】iOS 将 MPMoviePlayerController 镜像到电视并全屏播放电视屏幕【英文标题】:iOS Mirroring MPMoviePlayerController to TV with TV screen playback in fullscreen 【发布时间】:2015-06-29 06:58:26 【问题描述】:我有一个使用 MPMoviePlayerController 播放视频(本地存储)的应用
NSString *deviceDir = [[NSUserDefaults standardUserDefaults] stringForKey:WZLDEVICEPATH];
NSString *videopath = [deviceDir stringByAppendingPathComponent:video]
NSURL *url = [NSURL fileURLWithPath:videopath];
player = [[MPMoviePlayerController alloc] initWithContentURL:url];
CGRect viewInsetRect = CGRectInset (playerframe,
0.0,
0.0 );
/* Inset the movie frame in the parent view frame. */
[[player view] setFrame:viewInsetRect];
[player view].backgroundColor = [UIColor clearColor];
[player view].tag = TAG_VIDEO_PLAYER;
player.movieSourceType = MPMovieSourceTypeFile;
[player prepareToPlay];
[self.view addSubview: [player view]];
现在我需要将应用程序镜像到外部设备,镜像在第二个屏幕(电视)上正常工作,但电视播放的分辨率(宽 x 高)与 iPad 中的相同,我必须使电视全屏播放。有什么办法可以在不同分辨率的两台设备上同步播放。
我已尝试使用 MPMoviePlayerController 不同实例的多个窗口,但同步播放受到影响。有什么办法可以解决这些问题吗?
【问题讨论】:
【参考方案1】:[secondScreen setOverscanCompensation: UIScreenOverscanCompensationInsetApplicationFrame];
通过上述设置,16:9 分辨率的视频通过填充整个屏幕和 4:3 视频开始播放,顶部和底部有黑条,这没关系,因为我们知道要保持它需要的宽高比。
注意,我还注意到,当我们使用 iPad Mini 时,旧行为仍然会继续出现。
【讨论】:
以上是关于iOS 将 MPMoviePlayerController 镜像到电视并全屏播放电视屏幕的主要内容,如果未能解决你的问题,请参考以下文章
发布 iOS 应用后,是不是可以将部署目标从 iOS8 更改为 iOS7?
将 io.BytesIO 转换为 io.StringIO 以解析 HTML 页面