6

SCNSphere に割り当てられる SCNMaterial として AVPlayerLayer を使用しようとしています。

基: 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 render 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 をサブレイヤーとして追加しても、同じ結果が得られます。

どんな助けでも大歓迎です

4

2 に答える 2