我正在尝试使视频在OpenGL上下文上播放,并且在iPhoneX上可以正常工作,但是在我的iPad Pro上却出现黑屏。音频播放,并且日志中没有错误表明可能有问题。
这是我的代码:
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上针对黑屏视频建议的所有各种伏都教trick一样,结果始终是相同的。 / p>
有类似经验的人以及如何解决它?
答案 0 :(得分:1)
添加到[[Director sharedDirector] openGLView] .layer.superLayer而不是[[Director sharedDirector] openGLView] .layer已解决了该问题。
我仍然不知道为什么这在iPhone和iPad之间会有所不同,或者为什么如果iPad不起作用,它不会在iPad上引发某种错误。 (FWIW都可以在iPhone上使用)