我的应用程序是一个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设备上对其进行测试时,它会在听到声音的同时显示黑屏。
答案 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上正常工作。