using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.Video; public class Mp4Item : BaseFilePrefabItem { public RawImage showVideo; public RectTransform rectTransform; public VideoPlayer videoPlayer; public override void Init(FileConfig fileConfig) { base.Init(fileConfig); if (!string.IsNullOrEmpty(fileConfig.Url)) { string url = fileConfig.Url; if (!fileConfig.Url.Contains("http")) { url = "https://" + fileConfig.Url; } videoPlayer.url = url; } } protected override void Start() { base.Start(); StartCoroutine(enumerator()); } private IEnumerator enumerator() { while (!videoPlayer.isPrepared) { yield return null; } float standard_width = 150f; float standard_height = 84f; float video_width = videoPlayer.texture.width; float video_height = videoPlayer.texture.height; if (standard_width < video_width && standard_height > video_height) { float video_aspect = standard_width / video_width; rectTransform.sizeDelta = new Vector2(standard_width, video_height * video_aspect); } else if (standard_width > video_width && standard_height < video_height) { float video_aspect = standard_height / video_height; rectTransform.sizeDelta = new Vector2(video_width * video_aspect, standard_height); } else if (standard_width > video_width && standard_height > video_height) { if (standard_width / video_width > standard_height / video_height) { float video_aspect = standard_height / video_height; rectTransform.sizeDelta = new Vector2(video_width * video_aspect, video_height * video_aspect); } else { float video_aspect = standard_width / video_width; rectTransform.sizeDelta = new Vector2(video_width * video_aspect, video_height * video_aspect); } } else { if (standard_width / video_width > standard_height / video_height) { float video_aspect = standard_height / video_height; rectTransform.sizeDelta = new Vector2(video_width * video_aspect, video_height * video_aspect); } else { float video_aspect = standard_width / video_width; rectTransform.sizeDelta = new Vector2(video_width * video_aspect, video_height * video_aspect); } } } }