我正在尝试让视频在OpenGL环境下播放,它在iPhoneX上运行良好,但在我的iPad专业版上,我得到了一个黑屏。音频播放,并且日志中没有错误,表明可能有问题。
这是我的代码:
NSString *path = [[NSBundle mainBundle] pathForResource:title ofType:@"m4v"];
self.player = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
self.playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.player];
CGRect rect = CGRectMake(0, 0, 480, 320);
self.playerLayer.frame = rect;
[[[Director sharedDirector] openGLView].layer addSublayer:self.playerLayer];
[_player play];我知道480x320在12英寸的iPad上非常小,但是父视图的scaleX/scaleY属性被设置为放大它(同样,这在iPhoneX上运行得很好,甚至对于iPad上的OpenGL内容也是如此)
代码最初使用的是不推荐使用的MPMediaPlayerController,我也尝试了使用MPMediaPlayerViewController,就像我尝试了StackOverflow上推荐的所有黑屏视频的各种巫毒技巧一样,结果总是一样的。
有没有人有类似的经验和解决方法?
发布于 2019-07-31 18:26:19
添加到[Director sharedDirector openGLView].layer.superLayer而不是[Director sharedDirector openGLView].layer解决了此问题。
我仍然不明白为什么这会在iPhone和iPad之间有所不同,或者为什么如果iPad不能工作,它不会抛出某种错误。(FWIW,两者都适用于iPhone)
https://stackoverflow.com/questions/57288020
复制相似问题