首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVPlayerLayer as SCNMaterial未渲染,音频播放正常

AVPlayerLayer as SCNMaterial未渲染,音频播放正常
EN

Stack Overflow用户
提问于 2015-10-29 21:31:57
回答 2查看 608关注 0票数 6

我正在尝试将AVPlayerLayer用作要分配给SCNSphere的SCNMaterial。

基于:https://developer.apple.com/library/mac/samplecode/SceneKit_Slides_WWDC2013/Listings/Scene_Kit_Session_WWDC_2013_Sources_Slides_ASCSlideMaterialLayer_m.html

我创建了一个播放器,创建了一个播放器层,并尝试使用和不使用backgroundLayer作为我的SCNSphere的素材

问题是,我在这里得到了相同的结果:SCNMaterialProperty not rendering layer

音频播放,视频根本不渲染!

这段代码非常简单:

代码语言:javascript
复制
    // 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添加为子层,都会得到相同的结果。

任何帮助我们都将不胜感激

EN

回答 2

Stack Overflow用户

发布于 2016-09-21 03:26:03

@Guig @Byron,看看SKVideoNode吧。我不得不使用sprikeKit + SceneKit来完成我想要做的事情

票数 1
EN

Stack Overflow用户

发布于 2018-04-23 06:40:28

在最近的SceneKit版本中,不需要使用SKSceneSKVideoNode。您可以直接将AVPlayer设置为SCNMaterialProperty实例的内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33415651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档