iphone - SceneKit – AVPlayer Material 崩溃

标签 iphone swift avfoundation scenekit ios11

我正在使用视频作为 SCNNode 的素材:

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

这在大多数 iOS 设备上正常但在较旧的 iPhone 5s 上崩溃并出现以下错误:

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

是否有针对此问题的修复/解决方法?

最佳答案

我认为这是 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)
}()

希望这对您有所帮助。

关于iphone - SceneKit – AVPlayer Material 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52343196/

相关文章:

swift - AVPlayer : Unable to stream-play . mp4 & .mpg 文件

iOS UILabel.appearance().textColor 不可用

ios - Iphone map 套件 : displaying a image on a map

ios - 检测时间是否以小时为单位的简单方法是什么?

iphone - UINavigationController 强制旋转

swift - 函数参数的类型可以是特定的枚举 'case' 吗?

Swift 2.1 守卫与 if let

ios - AVAssetTrack 的 Assets 属性有时为零

ios - 如何将 .caf 文件转换为 .mp3 文件?

ios - 错误编译 alamofire - : -Xlinker 中的未知选项字符 `X'