TemplateVideo.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using RenderHeads.Media.AVProVideo;
  5. using UnityEngine;
  6. public class TemplateVideo : BaseTemPlate
  7. {
  8. public static Queue<TemplateVideo> temQueue = new Queue<TemplateVideo>();
  9. private Navigator.VideoControl m_VideoCtr;
  10. private AVProVideoPlayer m_Video;
  11. public string localSavePath;
  12. public string spid;
  13. public string videoid;
  14. protected override void OnEnable()
  15. {
  16. //localSavePath = Application.persistentDataPath + "/Material/" + Path.GetFileName(Data.downloadPath);
  17. base.OnEnable();
  18. if (GameManager.Instance.IsRuning && string.IsNullOrWhiteSpace(m_Video.GetUrl()))
  19. {
  20. if (File.Exists(localSavePath))
  21. {
  22. m_Video.SetUrl(localSavePath);
  23. }
  24. else
  25. {
  26. m_Video.SetUrl(null);
  27. }
  28. }
  29. m_Video.transform.GetComponent<VideoPlayBtn>().m_IsPlaying = false;
  30. m_Video.transform.GetComponent<VideoPlayBtn>().PlayVideo();
  31. setScale = true;
  32. }
  33. // private MediaPlayer MediaPlayer;
  34. private bool setScale;
  35. protected override void OnAwake()
  36. {
  37. base.OnAwake();
  38. // m_VideoCtr = transform.Find("Screen/Video").GetComponent<Navigator.VideoControl>();
  39. m_Video = transform.Find("Screen/AVideo").GetComponent<AVProVideoPlayer>();
  40. //MediaPlayer = transform.Find("Screen/AVideo").GetComponent<MediaPlayer>();
  41. HideCollider();
  42. }
  43. private void Start()
  44. {
  45. if (!UserInfo.Instance.is20)
  46. {
  47. videoid = transform.name;
  48. spid = transform.parent.parent.name;
  49. MultiPlayerManager.Instance.OnSynVideo += OnSyncVideo;
  50. m_Video.transform.GetComponent<VideoPlayBtn>().spid = spid;
  51. m_Video.transform.GetComponent<VideoPlayBtn>().videoid = videoid;
  52. }
  53. }
  54. private void Update()
  55. {
  56. //if((MediaPlayer.Info.GetVideoHeight()!=0 || MediaPlayer.Info.GetVideoWidth()!=0) && setScale )
  57. //{
  58. // float temp = (float)MediaPlayer.Info.GetVideoHeight() / (float)MediaPlayer.Info.GetVideoWidth();
  59. // MediaPlayer.transform.GetComponent<RectTransform>().sizeDelta = new Vector2(56,56*temp);
  60. // setScale = false;
  61. //}
  62. }
  63. public override void SetData(MaterialObjValue value, int updateTime)
  64. {
  65. base.SetData(value, updateTime);
  66. if (!GameManager.Instance.IsRuning|| Data == null)
  67. {
  68. localSavePath = Application.persistentDataPath + "/Material/" + Path.GetFileName(value.DownloadPath);
  69. // DownloadManager.Instance.AddDownloadData(Data);
  70. DownLoadMaterial data = new DownLoadMaterial();
  71. data.downLoadPath = value.DownloadPath;
  72. data.localLoadPath = Application.persistentDataPath + "/Material/" + Path.GetFileName(value.DownloadPath);
  73. data.updataTime = GameManager.Instance.m_SceneValue.updateTime;
  74. data.type = "3";
  75. MsgHandler.AddListener(value.DownloadPath, HandleMsg);
  76. DownloadResManager.Instance.DownLoad(data);
  77. Debug.Log(" SetData " + updateTime);
  78. Data = data;
  79. }
  80. else
  81. {
  82. localSavePath = Application.persistentDataPath + "/Material/" + Path.GetFileName(value.DownloadPath);
  83. if (File.Exists(localSavePath))
  84. {
  85. // m_VideoCtr.VideoURL = Data.localSavePath;
  86. m_Video.SetUrl(localSavePath);
  87. }
  88. else
  89. {
  90. // m_VideoCtr.VideoURL = null;
  91. m_Video.SetUrl(null);
  92. }
  93. }
  94. }
  95. public void SetData(string url)
  96. {
  97. Debug.Log(url);
  98. localSavePath = Application.persistentDataPath + "/Material/" + Path.GetFileName(url);
  99. //if(m_VideoCtr ==null)
  100. // m_VideoCtr = transform.Find("Screen/Video").GetComponent<Navigator.VideoControl>();
  101. //m_VideoCtr.VideoURL = url;
  102. if (m_Video == null)
  103. m_Video = transform.Find("Screen/AVideo").GetComponent<AVProVideoPlayer>();
  104. m_Video.SetUrl(localSavePath);
  105. }
  106. private void HandleMsg(Msg msg)
  107. {
  108. Debug.Log("DGJ ===> TemplateVideo");
  109. if (File.Exists(localSavePath))
  110. {
  111. // m_VideoCtr.VideoURL = Data.localSavePath;
  112. m_Video.SetUrl(localSavePath);
  113. }
  114. else
  115. {
  116. // m_VideoCtr.VideoURL = null;
  117. m_Video.SetUrl(null);
  118. }
  119. }
  120. private void OnSyncVideo(SyncVideoData syncVideo)
  121. {
  122. if(syncVideo.spid == spid&& syncVideo.id == videoid)
  123. {
  124. if (syncVideo.isPlay)
  125. m_Video.Play();
  126. else
  127. m_Video.Pause();
  128. if (syncVideo.times != -1)
  129. m_Video.SetSeek(syncVideo.times);
  130. }
  131. }
  132. public override void HideCollider()
  133. {
  134. base.HideCollider();
  135. }
  136. }