iOS13 Beta-8 SKVideoNode + AVPlayer显示黑屏

时间:2019-08-28 13:45:51

标签: avplayer augmented-reality beta ios13 skvideonode

我的应用程序是一个AR应用程序,可播放h.264视频。 我们由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设备上对其进行测试时,它会在听到声音的同时显示黑屏。

2 个答案:

答案 0 :(得分:0)

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

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

作者:

[myViewController addSubview:playerViewController.view];

如果可以帮助您。

答案 1 :(得分:0)

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

事实证明,造成此问题的根本原因是在我将PrefersOpenGL设置为YES的info.plist文件中。将其更改为NO(或删除它)可以解决我的问题,即它无法在SKVideoNode iOS 13中显示视频。它看起来也可以在iOS 12.4和11.4上正常工作。