Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

when my image target detected my video plays, but when lost the sound is still there, is still there

Discussion in 'Scripting' started by jessentannn, Nov 9, 2018.

  1. jessentannn

    jessentannn

    Joined:
    Aug 31, 2018
    Posts:
    10
    hi , im ccurrenly using unity to built my project .
    but stuck at the videoplayer and audio
    when my image target detected my video player is played ( still what i want ) but when target lost the sound is sstill playing until I deetected my image target again .
    im trying to using videoplayer.pause but when i do that , my image target that detected picture is lost.

    here is my code

    // DefaultTrackableEventHandler
    using UnityEngine;
    using UnityEngine.UI;
    using Vuforia;
    using UnityEngine.Video;


    public class DefaultTrackableEventHandler : MonoBehaviour, ITrackableEventHandler
    {
    public AudioSource soundTarget;
    public AudioClip clipTarget;

    private AudioSource[] allAudioSources;
    public Transform TextTargetName;

    public Transform TextDescription;

    public Transform PanelDescription;




    public UnityEngine.UI.Image uploadimage;

    public string filepath =" Assets / Resources / resources / image ";
    public VideoClip videoClip;
    public Renderer x;

    protected TrackableBehaviour mTrackableBehaviour;

    private void StopAllAudio()
    {
    allAudioSources = (Object.FindObjectsOfType(typeof(AudioSource)) as AudioSource[]);
    AudioSource[] array = allAudioSources;
    foreach (AudioSource audioSource in array)
    {
    audioSource.Stop();
    }
    }

    private void playSound(string ss)
    {
    clipTarget = (AudioClip)Resources.Load(ss);
    soundTarget.clip = clipTarget;
    soundTarget.loop = false;
    soundTarget.playOnAwake = false;
    soundTarget.Play();
    }

    protected virtual void Start()
    {
    mTrackableBehaviour = GetComponent<TrackableBehaviour>();
    if ((bool)mTrackableBehaviour)
    {
    mTrackableBehaviour.RegisterTrackableEventHandler(this);
    }

    soundTarget = base.gameObject.AddComponent<AudioSource>();
    var videoPlayer = gameObject.AddComponent<VideoPlayer>();
    var audioSource = gameObject.AddComponent<AudioSource>();

    videoPlayer.playOnAwake = false;
    videoPlayer.clip = videoClip;
    videoPlayer.renderMode = VideoRenderMode.MaterialOverride;
    videoPlayer.targetMaterialRenderer = x;
    videoPlayer.targetMaterialProperty = "_MainTex";
    videoPlayer.audioOutputMode = VideoAudioOutputMode.AudioSource;
    videoPlayer.SetTargetAudioSource(0, audioSource);

    }

    protected virtual void OnDestroy()
    {
    if ((bool)mTrackableBehaviour)
    {
    mTrackableBehaviour.UnregisterTrackableEventHandler(this);
    }
    }

    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
    {
    OnTrackingLost();
    }
    TextTargetName.gameObject.SetActive(value: false);
    uploadimage.gameObject.SetActive(value: false);
    TextDescription.gameObject.SetActive(value: false);
    PanelDescription.gameObject.SetActive(value: false);



    }
    protected virtual void OnTrackingFound()
    {
    Renderer[] componentsInChildren = GetComponentsInChildren<Renderer>(includeInactive: true);
    Collider[] componentsInChildren2 = GetComponentsInChildren<Collider>(includeInactive: true);
    Canvas[] componentsInChildren3 = GetComponentsInChildren<Canvas>(includeInactive: true);
    Renderer[] array = componentsInChildren;
    foreach (Renderer renderer in array)
    {
    renderer.enabled = true;
    }
    Collider[] array2 = componentsInChildren2;
    foreach (Collider collider in array2)
    {
    collider.enabled = true;
    }
    Canvas[] array3 = componentsInChildren3;
    foreach (Canvas canvas in array3)
    {
    canvas.enabled = true;
    }
    if (mTrackableBehaviour.TrackableName == "itsimc")
    {
    VideoPlayer vp = GetComponent<VideoPlayer>();
    if (vp.isPlaying)
    {
    vp.Stop();
    }
    else
    {
    vp.Play();
    }

    }
    if (mTrackableBehaviour.TrackableName == "STNK")
    {
    playSound("sound/stnksound");
    uploadimage.sprite = Resources.Load<Sprite>(filepath + "stnkimg");
    }
    if (mTrackableBehaviour.TrackableName == "HELM")
    {
    playSound("sound/helmsound");
    uploadimage.sprite = Resources.Load<Sprite>(filepath + "helmimg");
    }
    if (mTrackableBehaviour.TrackableName == "SIMCARD")
    {
    playSound("sound/simsound");
    uploadimage.sprite = Resources.Load<Sprite>(filepath + "simcardimg");
    }
    if (mTrackableBehaviour.TrackableName == "JACKET")
    {
    playSound("sound/jacketsound");
    uploadimage.sprite = Resources.Load<Sprite>(filepath + "jacketimg");
    }
    if (mTrackableBehaviour.TrackableName == "SARUNGTANGAN")
    {
    playSound("sound/glovessound");
    uploadimage.sprite = Resources.Load<Sprite>(filepath + "gloveimg");
    }
    if (mTrackableBehaviour.TrackableName == "SEPATU")
    {
    playSound("sound/shoesosund");
    uploadimage.sprite = Resources.Load<Sprite>(filepath + "shoesimg");
    }
    if (mTrackableBehaviour.TrackableName == "PAD")
    {
    playSound("sound/padsound");
    uploadimage.sprite = Resources.Load<Sprite>(filepath + "padimg");
    }
    if (mTrackableBehaviour.TrackableName == "MASKER")
    {
    playSound("sound/maskersound");
    uploadimage.sprite = Resources.Load<Sprite>(filepath + "maskerimg");
    }
    if (mTrackableBehaviour.TrackableName == "RAINCOAT")
    {
    playSound("sound/coatsound");
    uploadimage.sprite = Resources.Load<Sprite>(filepath + "raincoat");
    }
    if (mTrackableBehaviour.TrackableName == "HANDPHONE")
    {
    playSound("sound/hapesound");
    uploadimage.sprite = Resources.Load<Sprite>(filepath + "handphoneimg");
    }
    if (mTrackableBehaviour.TrackableName == "RODA")
    {
    playSound("sound/wheelsound");
    uploadimage.sprite = Resources.Load<Sprite>(filepath + "wheelimg");
    }
    if (mTrackableBehaviour.TrackableName == "BENSIN")
    {
    playSound("sound/fuelsound");
    uploadimage.sprite = Resources.Load<Sprite>(filepath + "fuelimg");
    }
    if (mTrackableBehaviour.TrackableName == "SPION")
    {
    playSound("sound/spionsound");
    uploadimage.sprite = Resources.Load<Sprite>(filepath + "spionimg");
    }

    }


    protected virtual void OnTrackingLost()
    {

    Renderer[] componentsInChildren = GetComponentsInChildren<Renderer>(includeInactive: true);
    Collider[] componentsInChildren2 = GetComponentsInChildren<Collider>(includeInactive: true);
    Canvas[] componentsInChildren3 = GetComponentsInChildren<Canvas>(includeInactive: true);
    Renderer[] array = componentsInChildren;
    foreach (Renderer renderer in array)
    {
    renderer.enabled = false;
    }
    Collider[] array2 = componentsInChildren2;
    foreach (Collider collider in array2)
    {
    collider.enabled = false;
    }
    Canvas[] array3 = componentsInChildren3;
    foreach (Canvas canvas in array3)
    {
    canvas.enabled = false;
    }


    StopAllAudio();
    }

    }


    pls help .
    thanks in advanced.
     
  2. boorb

    boorb

    Joined:
    Mar 18, 2016
    Posts:
    22
    Hey, could you edit your post and put your code in code tags? like this:
    Code (csharp):
    1. [code]PASTE YOUR CODE HERE[ /code]
    remove the space from the closing code tag

    Code (CSharp):
    1. OnTrackingLost();
    2. }
    3. TextTargetName.gameObject.SetActive(value: false);
    4. uploadimage.gameObject.SetActive(value: false);
    5. TextDescription.gameObject.SetActive(value: false);
    6. PanelDescription.gameObject.SetActive(value: false);
    7. }
    Anyway, in your OnTrackingLost() you do not set the audio to inactive.
     
  3. jessentannn

    jessentannn

    Joined:
    Aug 31, 2018
    Posts:
    10
    Code (CSharp):
    1. // DefaultTrackableEventHandler
    2. using UnityEngine;
    3. using UnityEngine.UI;
    4. using Vuforia;
    5. using UnityEngine.Video;
    6.  
    7.  
    8. public class DefaultTrackableEventHandler : MonoBehaviour, ITrackableEventHandler
    9. {
    10. public AudioSource soundTarget;
    11. public AudioClip clipTarget;
    12. private AudioSource[] allAudioSources;
    13. public Transform TextTargetName;
    14. public Transform TextDescription;
    15. public Transform PanelDescription;
    16. public UnityEngine.UI.Image uploadimage;
    17. public string filepath =" Assets / Resources / resources / image ";
    18. public VideoClip videoClip;
    19. public Renderer x;
    20. protected TrackableBehaviour mTrackableBehaviour;
    21. private void StopAllAudio()
    22. {
    23. allAudioSources = (Object.FindObjectsOfType(typeof(AudioSource)) as AudioSource[]);
    24. AudioSource[] array = allAudioSources;
    25. foreach (AudioSource audioSource in array)
    26. {
    27. audioSource.Stop();
    28. }
    29. }
    30. private void playSound(string ss)
    31. {
    32. clipTarget = (AudioClip)Resources.Load(ss);
    33. soundTarget.clip = clipTarget;
    34. soundTarget.loop = false;
    35. soundTarget.playOnAwake = false;
    36. soundTarget.Play();
    37. }
    38. protected virtual void Start()
    39. {
    40. mTrackableBehaviour = GetComponent<TrackableBehaviour>();
    41. if ((bool)mTrackableBehaviour)
    42. {
    43. mTrackableBehaviour.RegisterTrackableEventHandler(this);
    44. }
    45. soundTarget = base.gameObject.AddComponent<AudioSource>();
    46. var videoPlayer = gameObject.AddComponent<VideoPlayer>();
    47. var audioSource = gameObject.AddComponent<AudioSource>();
    48. videoPlayer.playOnAwake = false;
    49. videoPlayer.clip = videoClip;
    50. videoPlayer.renderMode = VideoRenderMode.MaterialOverride;
    51. videoPlayer.targetMaterialRenderer = x;
    52. videoPlayer.targetMaterialProperty = "_MainTex";
    53. videoPlayer.audioOutputMode = VideoAudioOutputMode.AudioSource;
    54. videoPlayer.SetTargetAudioSource(0, audioSource);
    55. }
    56. protected virtual void OnDestroy()
    57. {
    58. if ((bool)mTrackableBehaviour)
    59. {
    60. mTrackableBehaviour.UnregisterTrackableEventHandler(this);
    61. }
    62. }
    63. public void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus)
    64. {
    65. if (newStatus == TrackableBehaviour.Status.DETECTED || newStatus == TrackableBehaviour.Status.TRACKED || newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED)
    66. {
    67. Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " found");
    68. OnTrackingFound();
    69. }
    70. else if (previousStatus == TrackableBehaviour.Status.TRACKED && newStatus == TrackableBehaviour.Status.NO_POSE)
    71. {
    72. Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " lost");
    73. OnTrackingLost();
    74. }
    75. else
    76. {
    77. OnTrackingLost();
    78. }
    79. TextTargetName.gameObject.SetActive(value: false);
    80. uploadimage.gameObject.SetActive(value: false);
    81. TextDescription.gameObject.SetActive(value: false);
    82. PanelDescription.gameObject.SetActive(value: false);
    83. }
    84. protected virtual void OnTrackingFound()
    85. {
    86. Renderer[] componentsInChildren = GetComponentsInChildren<Renderer>(includeInactive: true);
    87. Collider[] componentsInChildren2 = GetComponentsInChildren<Collider>(includeInactive: true);
    88. Canvas[] componentsInChildren3 = GetComponentsInChildren<Canvas>(includeInactive: true);
    89. Renderer[] array = componentsInChildren;
    90. foreach (Renderer renderer in array)
    91. {
    92. renderer.enabled = true;
    93. }
    94. Collider[] array2 = componentsInChildren2;
    95. foreach (Collider collider in array2)
    96. {
    97. collider.enabled = true;
    98. }
    99. Canvas[] array3 = componentsInChildren3;
    100. foreach (Canvas canvas in array3)
    101. {
    102. canvas.enabled = true;
    103. }
    104. if (mTrackableBehaviour.TrackableName == "itsimc")
    105. {
    106. VideoPlayer vp = GetComponent<VideoPlayer>();
    107. if (vp.isPlaying)
    108. {
    109. vp.Stop();
    110. }
    111. else
    112. {
    113. vp.Play();
    114. }
    115.  
    116. }
    117. if (mTrackableBehaviour.TrackableName == "STNK")
    118. {
    119. playSound("sound/stnksound");
    120. uploadimage.sprite = Resources.Load<Sprite>(filepath + "stnkimg");
    121. }
    122. if (mTrackableBehaviour.TrackableName == "HELM")
    123. {
    124. playSound("sound/helmsound");
    125. uploadimage.sprite = Resources.Load<Sprite>(filepath + "helmimg");
    126. }
    127. if (mTrackableBehaviour.TrackableName == "SIMCARD")
    128. {
    129. playSound("sound/simsound");
    130. uploadimage.sprite = Resources.Load<Sprite>(filepath + "simcardimg");
    131. }
    132. if (mTrackableBehaviour.TrackableName == "JACKET")
    133. {
    134. playSound("sound/jacketsound");
    135. uploadimage.sprite = Resources.Load<Sprite>(filepath + "jacketimg");
    136. }
    137. if (mTrackableBehaviour.TrackableName == "SARUNGTANGAN")
    138. {
    139. playSound("sound/glovessound");
    140. uploadimage.sprite = Resources.Load<Sprite>(filepath + "gloveimg");
    141. }
    142. if (mTrackableBehaviour.TrackableName == "SEPATU")
    143. {
    144. playSound("sound/shoesosund");
    145. uploadimage.sprite = Resources.Load<Sprite>(filepath + "shoesimg");
    146. }
    147. if (mTrackableBehaviour.TrackableName == "PAD")
    148. {
    149. playSound("sound/padsound");
    150. uploadimage.sprite = Resources.Load<Sprite>(filepath + "padimg");
    151. }
    152. if (mTrackableBehaviour.TrackableName == "MASKER")
    153. {
    154. playSound("sound/maskersound");
    155. uploadimage.sprite = Resources.Load<Sprite>(filepath + "maskerimg");
    156. }
    157. if (mTrackableBehaviour.TrackableName == "RAINCOAT")
    158. {
    159. playSound("sound/coatsound");
    160. uploadimage.sprite = Resources.Load<Sprite>(filepath + "raincoat");
    161. }
    162. if (mTrackableBehaviour.TrackableName == "HANDPHONE")
    163. {
    164. playSound("sound/hapesound");
    165. uploadimage.sprite = Resources.Load<Sprite>(filepath + "handphoneimg");
    166. }
    167. if (mTrackableBehaviour.TrackableName == "RODA")
    168. {
    169. playSound("sound/wheelsound");
    170. uploadimage.sprite = Resources.Load<Sprite>(filepath + "wheelimg");
    171. }
    172. if (mTrackableBehaviour.TrackableName == "BENSIN")
    173. {
    174. playSound("sound/fuelsound");
    175. uploadimage.sprite = Resources.Load<Sprite>(filepath + "fuelimg");
    176. }
    177. if (mTrackableBehaviour.TrackableName == "SPION")
    178. {
    179. playSound("sound/spionsound");
    180. uploadimage.sprite = Resources.Load<Sprite>(filepath + "spionimg");
    181. }
    182. }
    183. protected virtual void OnTrackingLost()
    184. {
    185.  
    186. Renderer[] componentsInChildren = GetComponentsInChildren<Renderer>(includeInactive: true);
    187. Collider[] componentsInChildren2 = GetComponentsInChildren<Collider>(includeInactive: true);
    188. Canvas[] componentsInChildren3 = GetComponentsInChildren<Canvas>(includeInactive: true);
    189. Renderer[] array = componentsInChildren;
    190. foreach (Renderer renderer in array)
    191. {
    192. renderer.enabled = false;
    193. }
    194. Collider[] array2 = componentsInChildren2;
    195. foreach (Collider collider in array2)
    196. {
    197. collider.enabled = false;
    198. }
    199. Canvas[] array3 = componentsInChildren3;
    200. foreach (Canvas canvas in array3)
    201. {
    202. canvas.enabled = false;
    203. }
    204. StopAllAudio();
    205. }
    206. }
    207.  
     
  4. jessentannn

    jessentannn

    Joined:
    Aug 31, 2018
    Posts:
    10
    sir im trying to using audiostop(); but its not working at all . the vdeo wont come out.
     
  5. dizzbee

    dizzbee

    Joined:
    Mar 18, 2019
    Posts:
    4
    I have the same issue - built the app without coding - Is there a way to stop the video and audio without using coding (Hoping for a check box solution lol)?
     
  6. thirdpurple

    thirdpurple

    Joined:
    Mar 21, 2019
    Posts:
    4
    Similar issues