SceneKit - сбой материала AVPlayer - PullRequest
0 голосов
/ 15 сентября 2018

Я использую видео в качестве материала для SCNNode:

geo.materials.first?.diffuse.contents = AVPlayer(url: url)

Это работает отлично на большинстве устройств iOS, но вылетает на старом iPhone5s со следующей ошибкой:

-[MTLTextureDescriptorInternal validateWithDevice:], line 781: error 'MTLTextureDescriptor has invalid pixelFormat (520).'
-[MTLTextureDescriptorInternal validateWithDevice:]:781: failed assertion `MTLTextureDescriptor has invalid pixelFormat (520).'

Есть ли исправление / обходной путь для этой проблемы?

1 Ответ

0 голосов
/ 16 сентября 2018

Я думаю, что это проблема с оборудованием iPhone 5s.Попробуйте использовать SKVideoNode в качестве обходного пути.Объекты SpriteKit гораздо «легче» для iPhone 5s.

var videoNode: SKVideoNode? = {

    guard let urlString = Bundle.main.path(forResource: "file", 
                                                ofType: "m4v") else {
        return nil
    }    

    let url = URL(fileURLWithPath: urlString)
    let item = AVPlayerItem(url: url)
    let player = AVPlayer(playerItem: item)

    return SKVideoNode(avPlayer: player)
}()

Надеюсь, это поможет.

...