I would like to play a video clip(.mp4) when my Android camera see my image target. I just added a function in TrackableEventHandler.cs to play my video. The question is when AR Camera see image target, the video did play but playing twice, after that, then go back to AR Camera view. Mt expectation is playing video once then go back to AR Camera. Could anyone help me out?
Code:
using UnityEngine;
using System.Collections;
// A custom handler that implements the ITrackableEventHandler interface.
public class TrackableEventHandler : MonoBehaviour,
ITrackableEventHandler
{
#region PRIVATE_MEMBER_VARIABLES
private TrackableBehaviour mTrackableBehaviour;
#endregion // PRIVATE_MEMBER_VARIABLES
#region UNTIY_MONOBEHAVIOUR_METHODS
void Start()
{
mTrackableBehaviour = GetComponent
if (mTrackableBehaviour)
{
mTrackableBehaviour.RegisterTrackableEventHandler(this);
}
OnTrackingLost();
}
#endregion // UNTIY_MONOBEHAVIOUR_METHODS
#region PUBLIC_METHODS
// Implementation of the ITrackableEventHandler function called when the
// tracking state changes.
public void OnTrackableStateChanged(
TrackableBehaviour.Status previousStatus,
TrackableBehaviour.Status newStatus)
{
if (newStatus == TrackableBehaviour.Status.DETECTED ||
newStatus == TrackableBehaviour.Status.TRACKED)
{
OnTrackingFound();
}
else
{
OnTrackingLost();
}
}
#endregion // PUBLIC_METHODS
#region PRIVATE_METHODS
private void OnTrackingFound()
{
Renderer[] rendererComponents = GetComponentsInChildren
// Enable rendering:
foreach (Renderer component in rendererComponents) {
component.enabled = true;
}
// Playing my video:
PlayV1();
Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " found");
}
private void OnTrackingLost()
{
Renderer[] rendererComponents = GetComponentsInChildren
// Disable rendering:
foreach (Renderer component in rendererComponents) {
component.enabled = false;
}
Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " lost");
}
#endregion // PRIVATE_METHODS
private void PlayV1()
{
iPhoneUtils.PlayMovie("v1.mp4", Color.black, iPhoneMovieControlMode.Full);
Application.LoadLevel(Application.loadedLevel);
}
}
allanjjj, are you playing video full screen or onto a target?