TemplateVideo.cs 4.8 KB

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