视频播放在iPhone上有效,但在iPad上无效

时间:2019-07-31 09:54:14

标签: ios objective-c video cocos2d-iphone

我正在尝试使视频在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>

有类似经验的人以及如何解决它?

1 个答案:

答案 0 :(得分:1)

添加到[[Director sharedDirector] openGLView] .layer.superLayer而不是[[Director sharedDirector] openGLView] .layer已解决了该问题。

我仍然不知道为什么这在iPhone和iPad之间会有所不同,或者为什么如果iPad不起作用,它不会在iPad上引发某种错误。 (FWIW都可以在iPhone上使用)