You can embed the 360-degree player by initializing a Swifty360ViewController with an AVPlayer instance and a Swifty360MotionManager.shared instance.
Programmatic Integration
Use addChildViewController to embed the player view controller into your existing view controller hierarchy.
let videoURL = URL(fileURLWithPath: Bundle.main.path(forResource: "google-help-vr", ofType: "mp4")!)
let player = AVPlayer(url: videoURL)
let motionManager = Swifty360MotionManager.shared
let swifty360ViewController = Swifty360ViewController(withAVPlayer: player, motionManager: motionManager)
addChildViewController(swifty360ViewController)
view.addSubview(swifty360ViewController.view)
swifty360ViewController.didMove(toParentViewController: self)
player.play()
Storyboard Integration
- Create a subclass of
Swifty360ViewController. - In your parent view controller, instantiate the subclass via storyboard.
- Assign the
player and motionManager properties.
// In your parent VC
guard let swifty360ViewController = self.storyboard?.instantiateViewController(withIdentifier: "TestViewController") as? TestViewController else { return }
let videoURL = URL(fileURLWithPath: Bundle.main.path(forResource: "google-help-vr", ofType: "mp4")!)
let player = AVPlayer(url: videoURL)
let motionManager = Swifty360MotionManager.shared
swifty360ViewController.player = player
swifty360ViewController.motionManager = motionManager
self.present(swifty360ViewController, animated: true, completion: nil)
// The subclass implementation
import UIKit
import Swifty360Player
class TestViewController: Swifty360ViewController {
override func viewDidLoad() {
super.viewDidLoad()
player.play()
}
}
let motionManager = Swifty360MotionManager.shared
let swifty360ViewController = Swifty360ViewController(withAVPlayer: player, motionManager: motionManager)
addChildViewController(swifty360ViewController)
view.addSubview(swifty360ViewController.view)
swifty360ViewController.didMove(toParentViewController: self)