iOS13 Beta-8 SKVideoNode+AVPlayer显示黑屏



我的应用程序是一个播放h.264视频的AR应用程序。 我们通过AVPlayer创建了SKVideoNode,并将SKVideoNode设置为SKScene,然后创建SCNNode以涉及此SKScene。

- 示例代码

AVPlayer *avPlayer = [self getMoviePlayer:path];
SKVideoNode *videoNode = [[SKVideoNode alloc]initWithAVPlayer: avPlayer];
CGSize videoSize = CGSizeMake(100, 50);
videoNode.size = videoSize;
videoNode.position = CGPointMake(50, 50);
videoNode.yScale = -1.0;
SKScene *skScene = [[SKScene alloc] initWithSize:videoSize];
skScene.scaleMode = SKSceneScaleModeAspectFit;
[skScene addChild:videoNode];
SCNNode *planeNode = [[SCNNode alloc] init];
planeNode.geometry =  [[SCNPlane alloc] init];
SCNMaterial *material;
material = [[SCNMaterial alloc] init];
material.diffuse.contents = skScene;
planeNode.geometry.firstMaterial = material;

==========================我们使用此 SCNNode 播放视频。

它在 iOS12.4 之前工作正常,但是当我在 iOS13-beta 设备上测试它时,它在听到声音时显示黑屏。

我遇到了非常相似的问题。 我也认为这可能是iOS13的错误。 但是我无法在隔离特定SKVideNode代码的测试项目中重现该问题。

事实证明,我遇到此问题的根本原因是在我的info.plist文件中,我将PrefersOpenGL设置为是。 将其更改为NO(或删除它(解决了我的问题,它无法在我的SKVideoNode iOS 13中显示视频。 看起来该更改也适用于iOS 12.4和11.4。

我遇到了同样的问题。我用替换解决了它:

[myViewController.layer addSublayer:playerViewController.view.layer];

由:

[myViewController addSubview:playerViewController.view];

如果它能帮助你。

最新更新