Following document is dedicated for the following: LifeCycle Management of MAXST AR and Start/Stop of Camera & IMU Sensor for iOS Device


LifeCycle Management of MAXST AR

Operate tracker from the selected tutorial after combining MaxstAR to LifeCycle of the ViewController that you wish to operate.

※ Correct license key must be entered to MasMaxstAR.setLicenseKey() function to properly activate.

Refer to API Reference for each functions' guideline.

※ When the incorrect license key is entered, Invalid Signature will appear as watermark, and target tracking and AR contents rendering will fail to operate.


override func viewDidLoad() {
    MasMaxstAR.setLicenseKey( "your license key");
}

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    MasMaxstAR.setScreenOrientation(orientation);
    MasMaxstAR.onSurfaceChanged(width, height);
}

override func viewDidDisappear(_ animated: Bool) {
    MasMaxstAR.deinit()
}


Start/Stop Camera

In order to start/stop camera from ViewController, register observer regarding didBecomeActiveNotification, didEnterBackgroundNotification, willResignActiveNotification, call upon functions of Start/Stop Camera that match each event.


override func viewDidLoad() {
       NotificationCenter.default.addObserver(self, selector: #selector(pauseAR), name: UIApplication.willResignActiveNotification, object: nil)
       NotificationCenter.default.addObserver(self, selector: #selector(enterBackgournd), name: UIApplication.didEnterBackgroundNotification, object: nil)
       NotificationCenter.default.addObserver(self, selector: #selector(resumeAR), name: UIApplication.didBecomeActiveNotification, object: nil)
}

Start/Stop Camera from ViewController


 @objc func resumeAR() {
        cameraResultCode = cameraDevice.start(0, width: 1280, height: 720)
 }

 @objc func pauseAR() {
        cameraDevice.stop()
 }

 @objc func enterBackgournd() {
        cameraDevice.stop()
 }


Start/Stop Sensor

Start/Stop IMU Sensor from ViewController

※In case of Instant Tracker, IMU Sensor data is required.


 @objc func resumeAR() {
        sensorResultCode = cameraDevice.start(0, width: 1280, height: 720)
 }

 @objc func pauseAR() {
        sensorDevice.stop()
 }

 @objc func enterBackgournd() {
        sensorDevice.stop()
 }