0

Я пытаюсь воспроизвести 180 видео с рыбой и сценой, и один из примеров, которые я нашел, использует сферу в качестве геометрии AVPlayers для воспроизведения видео на 360 градусов.AVPlayer на полусфере вместо сферы для воспроизведения видео на 180 °

Проблема в том, что видео, которое я использую, снимается с камерой 180 ° рыбий глаз, и мне нужно представить ее с половиной сферы.

Я пробовал код в течение 2 дней, но не повезло.

Поскольку я не испытывал этой темы, я попытался частично поместить AVPlayer на полную сферу или сократить SCNSphere пополам без успеха.

Приведенный ниже код предназначен для воспроизведения видео и 360 из simple360player_iOS GitHub репо,

var screenScale : CGFloat          = 1.0 
     if PROCESSOR_64BITS { 
      screenScale             = CGFloat(3.0) 
     } 

     player               = AVPlayer(URL: fileURL!) 
     let videoSpriteKitNodeLeft          = SKVideoNode(AVPlayer: player) 
     let videoNodeLeft            = SCNNode() 
     let spriteKitScene1            = SKScene(size: CGSize(width: 1280 * screenScale, height: 1280 * screenScale)) 
     spriteKitScene1.shouldRasterize         = true 
     var spriteKitScenes            = [spriteKitScene1] 

     videoNodeLeft.geometry           = SCNSphere(radius: 30) 
     spriteKitScene1.scaleMode          = .AspectFit 
     videoSpriteKitNodeLeft.position         = CGPoint(x: spriteKitScene1.size.width/2.0, y: spriteKitScene1.size.height/2.0) 
     videoSpriteKitNodeLeft.size          = spriteKitScene1.size 

ответ

0

Настройка частичной сферы, частичное отображение, или другой объект, который в противном случае достигает этой цели, вероятно, самый благородный путь. Однако, в зависимости от контекста проекта, в случаях, когда у вас есть видео на 180 градусов, часто быстрее удваивать ширину видео и заполнять дополнительное пространство черным или что-то по вашему выбору. Это особенно полезно, если есть вероятность, что в будущем у вас будет 360 видеороликов.