TemplateVideo.cs 3.9 KB

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