12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- // You need to define AVPRO_PACKAGE_TIMELINE manually to use this script
- // We could set up the asmdef to reference the package, but the package doesn't
- // existing in Unity 2017 etc, and it throws an error due to missing reference
- //#define AVPRO_PACKAGE_TIMELINE
- #if (UNITY_2018_1_OR_NEWER && AVPRO_PACKAGE_TIMELINE)
- using UnityEngine;
- using UnityEngine.Playables;
- using UnityEngine.Timeline;
- using System.Collections.Generic;
- //-----------------------------------------------------------------------------
- // Copyright 2020-2021 RenderHeads Ltd. All rights reserved.
- //-----------------------------------------------------------------------------
- namespace RenderHeads.Media.AVProVideo.Playables
- {
- public class MediaPlayerControlBehaviour : PlayableBehaviour
- {
- public MediaPlayer mediaPlayer = null;
- public MediaReference mediaReference = null;
- public float audioVolume = 1f;
- public double startTime = -1.0;
- public bool pauseOnEnd = true;
- public override void OnBehaviourPlay(Playable playable, FrameData info)
- {
- if (mediaPlayer != null)
- {
- if (Application.isPlaying)
- {
- if (mediaReference != null && mediaReference != mediaPlayer.MediaReference)
- {
- mediaPlayer.OpenMedia(mediaReference, true);
- if (mediaPlayer.Control != null)
- {
- mediaPlayer.Control.SeekFast(startTime);
- }
- }
- else
- {
- mediaPlayer.Play();
- }
- }
- }
- }
- public override void OnBehaviourPause(Playable playable, FrameData info)
- {
- if (mediaPlayer != null)
- {
- if (pauseOnEnd)
- {
- mediaPlayer.Pause();
- }
- }
- }
- public override void ProcessFrame(Playable playable, FrameData info, object playerData)
- {
- }
- }
- }
- #endif
|