iOS13 Beta-8 SKVideoNode + AVPlayer показывает черный экран

Мое приложение - это приложение AR для воспроизведения видео в формате H.264. Мы создали SKVideoNode с помощью AVPlayer и установили 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, он показывает черный экран, когда слышен звук.


person user11989557    schedule 28.08.2019    source источник


Ответы (2)


У меня была очень похожая проблема. Я тоже подумал, что это может быть ошибка iOS13. Но я не мог воспроизвести проблему в тестовом проекте, который изолировал конкретный код SKVideNode.

Оказалось, что основная причина моей проблемы с этой проблемой была в моем файле info.plist, у меня для PrefersOpenGL было установлено значение YES. Изменение его на NO (или его удаление) устранило мою проблему с тем, что он не отображал видео в моем SKVideoNode iOS 13. Также похоже, что это изменение отлично работает и с iOS 12.4 и 11.4.

person gplocke    schedule 17.11.2019

У меня такая же проблема. Я решил это заменить:

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

by:

[myViewController addSubview:playerViewController.view];

Если это может тебе помочь.

person Franck-so    schedule 13.09.2019