using DG.Tweening; using RenderHeads.Media.AVProVideo; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; using ZXK.BYSS; using ZXK.Framework; //交互物体类型 public enum BtnType { btn,dropDown,none,shouzhi} //交互类型 public enum ClickType { once,two} /// /// 总控制器 /// public class AvproVideoController : MonoSingleton { //当前索引 public int CurrentIndex; [Header("视频组件")] public GameObject _MediaPlayerObj; [Header("DisPlayUI")] public DisplayUGUI displayUGUI; public RawImage rawImage; private MediaPlayer mediaPlayer; [Header("结束按钮")] public GameObject Btn; public Text text; [Header("步骤")] public AvproVideoStep[] avproVideoSteps; [Header("当前操作步骤")] public AvproVideoStep currentAvproVideoSteps; private void Start() { mediaPlayer = _MediaPlayerObj.GetComponent(); //初始化 //音频播放, //视频播放 //并给索引按钮添加事件 //初始化调用rawImage SetMedioPlayer(); } string FloderPath; ///视频地址设置 public void SetMedioPlayer() { //超索引处理,默认完成了弹出结束按钮 if (CurrentIndex< avproVideoSteps.Length) { switch (AppManagement.Instance._CurType) { case ZXK.UTility.EnumCtrl.Type.XHBY: FloderPath = "/AVProVideo/XHBYDebugVideo/"; break; case ZXK.UTility.EnumCtrl.Type.QDCY: FloderPath = "/AVProVideo/QDCYDebugVideo/"; break; case ZXK.UTility.EnumCtrl.Type.CLFJ: FloderPath = "/AVProVideo/CLFJDebugVideo/"; break; case ZXK.UTility.EnumCtrl.Type.ZNYD: FloderPath = "/AVProVideo/ZNYDDebugVideo/"; break; case ZXK.UTility.EnumCtrl.Type.BYSS: FloderPath = "/AVProVideo/BYSSDebugVideo/"; break; } //1.5设置文字 text.text = avproVideoSteps[CurrentIndex].TextStr; //2. //设置当前视频组 mediaPlayer.m_VideoPath = Application.streamingAssetsPath + FloderPath + avproVideoSteps[CurrentIndex].AvproVideoPath + ".mp4"; ; //视频地址播放 mediaPlayer.OpenVideoFromFile(MediaPlayer.FileLocation.AbsolutePathOrURL, mediaPlayer.m_VideoPath, false); //设置承载视频播放UI //1.开始播放视频 displayUGUI.gameObject.SetActive(true); displayUGUI.CurrentMediaPlayer.Play(); displayUGUI._mediaPlayer.Events.RemoveAllListeners(); //注册事件 displayUGUI._mediaPlayer.Events.AddListener(OnMediaPlayerEvent); //2.先播放音频 if (avproVideoSteps[CurrentIndex].IsPlayAudio) { var v = UI_Manage.Instance.GetPanel("PracticeAndExamPanel") .GetComponent()._CurTrainExamSceneCtrl; v.speakManager.PlayFixedAudioCilp(avproVideoSteps[CurrentIndex].AudioClipIndex); } else { WDebug.Log("不播放音频"); } } else { Btn.gameObject.SetActive(true); Btn.gameObject.GetComponent().alpha=1; Btn.gameObject.GetComponent