using UnityEngine; using System.Collections; using vnxbqy.UI; using UnityEngine.Video; using System; public class MoviePlayer : MonoBehaviour { static MoviePlayer m_Instance; public static MoviePlayer Instance { get { if (m_Instance == null) { var prefab = BuiltInLoader.LoadPrefab("MoviePlayer"); var go = Instantiate(prefab); go.name = "MoviePlayer"; go.transform.position = new Vector3(1000, 4000, 1000); m_Instance = go.GetComponent(); m_Instance.m_VideoCamera.enabled = false; } return m_Instance; } } [SerializeField] VideoPlayer m_VideoPlayer; [SerializeField] AudioSource m_AudioSource; [SerializeField] Camera m_VideoCamera; public bool isPlaying { get; private set; } Action onComplete; public void Update() { if (Input.GetMouseButtonDown(0)) { Stop(); } } public bool Play(string name, Action onComplete) { // TODO: Android播放有问题,暂时不用 return false; //var clip = VideoLoader.Load(name); //if (clip == null) //{ // return false; //} //this.onComplete = onComplete; //m_VideoPlayer.aspectRatio = VideoAspectRatio.FitInside; //m_VideoPlayer.clip = clip; //m_VideoPlayer.SetTargetAudioSource(0, m_AudioSource); //m_VideoPlayer.Play(); //m_VideoCamera.enabled = true; //SoundPlayer.Instance.mute = true; //isPlaying = true; //Clock.AlarmAfter(clip.length, () => { Stop(); }); //return true; } public void Stop() { if (!isPlaying) { return; } isPlaying = false; m_VideoCamera.enabled = false; SoundPlayer.Instance.mute = false; if (m_VideoPlayer.isPlaying) { m_VideoPlayer.Stop(); m_VideoPlayer.clip = null; } if (onComplete != null) { onComplete(); onComplete = null; } } }