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);
            }
        }
    }
}