我正在尝试将AVPlayerLayer用作要分配给SCNSphere的SCNMaterial。
我创建了一个播放器,创建了一个播放器层,并尝试使用和不使用backgroundLayer作为我的SCNSphere的素材
问题是,我在这里得到了相同的结果:SCNMaterialProperty not rendering layer
音频播放,视频根本不渲染!
这段代码非常简单:
// 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添加为子层,都会得到相同的结果。
任何帮助我们都将不胜感激
发布于 2016-09-21 03:26:03
@Guig @Byron,看看SKVideoNode吧。我不得不使用sprikeKit + SceneKit来完成我想要做的事情
发布于 2018-04-23 06:40:28
在最近的SceneKit版本中,不需要使用SKScene和SKVideoNode。您可以直接将AVPlayer设置为SCNMaterialProperty实例的内容。
https://stackoverflow.com/questions/33415651
复制相似问题