need code to play multiple videos in the latest version of vuforia?

Viewed 24

need help to play and stop a video in the latest vuforia version in the following code, can someone help me with the code lines as to where the changes needs to be made in the new version inorder to run multiple videos on different targets

using UnityEngine;

using Vuforia;

using UnityEngine.Video; //added

///

/// A custom handler that implements the ITrackableEventHandler interface.

///

public class DefaultTrackableEventHandler : MonoBehaviour

{

#region PRIVATE_MEMBER_VARIABLES

protected TrackableBehaviour mTrackableBehaviour;

#endregion // PRIVATE_MEMBER_VARIABLES

#region UNTIY_MONOBEHAVIOUR_METHODS

protected virtual void Start()

{

    mTrackableBehaviour = GetComponent<TrackableBehaviour>();

    if (mTrackableBehaviour)

        mTrackableBehaviour.RegisterTrackableEventHandler(this);

}

#endregion // UNTIY_MONOBEHAVIOUR_METHODS

#region PUBLIC_METHODS

/// <summary>

///     Implementation of the ITrackableEventHandler function called when the

///     tracking state changes.

/// </summary>

public void OnTrackableStateChanged(

    TrackableBehaviour.Status previousStatus,

    TrackableBehaviour.Status newStatus)

{

    if (newStatus == TrackableBehaviour.Status.DETECTED ||

        newStatus == TrackableBehaviour.Status.TRACKED ||

        newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED)

    {

        Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " found");

        OnTrackingFound();

    }

    else if (previousStatus == TrackableBehaviour.Status.TRACKED &&

             newStatus == TrackableBehaviour.Status.NO_POSE)

    {

        Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " lost");

        OnTrackingLost();

    }

    else

    {

        // For combo of previousStatus=UNKNOWN + newStatus=UNKNOWN|NOT_FOUND

        // Vuforia is starting, but tracking has not been lost or found yet

        // Call OnTrackingLost() to hide the augmentations

        OnTrackingLost();

    }

}

#endregion // PUBLIC_METHODS

#region PRIVATE_METHODS

protected virtual void OnTrackingFound()

{

    var rendererComponents = GetComponentsInChildren<Renderer>(true);

    var colliderComponents = GetComponentsInChildren<Collider>(true);

    var canvasComponents = GetComponentsInChildren<Canvas>(true);

    foreach (var component in rendererComponents)

        component.enabled = true;

    // Enable colliders:

    foreach (var component in colliderComponents)

        component.enabled = true;

    // Enable canvas':

    foreach (var component in canvasComponents)

        component.enabled = true;

    // added

    if (mTrackableBehaviour.gameObject.GetComponentInChildren<VideoPlayer>() != null)

    {

        mTrackableBehaviour.gameObject.GetComponentInChildren<VideoPlayer>().Play();

    }

}



protected virtual void OnTrackingLost()

{

    var rendererComponents = GetComponentsInChildren<Renderer>(true);

    var colliderComponents = GetComponentsInChildren<Collider>(true);

    var canvasComponents = GetComponentsInChildren<Canvas>(true);

    // Disable rendering:

    foreach (var component in rendererComponents)

        component.enabled = false;

    // Disable colliders:

    foreach (var component in colliderComponents)

        component.enabled = false;

    // Disable canvas':

    foreach (var component in canvasComponents)

        component.enabled = false;

    // added

    if (mTrackableBehaviour.gameObject.GetComponentInChildren<VideoPlayer>() != null)

    {

        mTrackableBehaviour.gameObject.GetComponentInChildren<VideoPlayer>().Pause();

    }

}

#endregion // PRIVATE_METHODS

}

0 Answers
Related