Я пытаюсь использовать AVPlayerLayer в качестве SCNMaterial, который будет назначен SCNSphere.
Я создаю игрока, создаю слой игрока и пробовал с backgroundLayer и без него, чтобы назначить его в качестве материала для моей SCNSphere.
Проблема в том, что я получаю тот же результат, что и здесь: SCNMaterialProperty не отображает слой
Аудио воспроизводится, видео вообще не отображается!
Часть кода довольно проста:
// video player
let path = NSBundle.mainBundle().pathForResource("tb", ofType: "mp4")
let url = NSURL(fileURLWithPath: path!)
let player = AVPlayer(URL: url) // AVPlayer
player.actionAtItemEnd = .None
player.play()
let frame = CGRectMake(0, 0, 300, 300)
let playerLayer = AVPlayerLayer()
playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
playerLayer.frame = frame
playerLayer.player = player
sceneMaterial = SCNMaterial()
sceneMaterial.specular.contents = UIColor.whiteColor()
sceneMaterial.shininess = 0.5
sceneMaterial.diffuse.contents = playerLayer
sphere.materials = [sceneMaterial]
Как уже упоминалось, использование backgroundLayer: CALayer и добавление playerLayer в качестве подслоя дает тот же результат.
Любая помощь приветствуется