273 lines
7.9 KiB
C#
273 lines
7.9 KiB
C#
using DG.Tweening;
|
||
using RenderHeads.Media.AVProVideo;
|
||
using System;
|
||
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using TMPro;
|
||
using UnityEngine;
|
||
using UnityEngine.UI;
|
||
using UnityEngine.Video;
|
||
|
||
public class AndroidPadMainPage : MonoBehaviour
|
||
{
|
||
[SerializeField]
|
||
private TextMeshProUGUI m_DateText;
|
||
[SerializeField]
|
||
private TextMeshProUGUI m_TimeText;
|
||
|
||
[SerializeField]
|
||
private List<Toggle> m_Video1Toggle;
|
||
|
||
[SerializeField]
|
||
private Button m_LastScreenButton;
|
||
[SerializeField]
|
||
private Button m_NextScreenButton;
|
||
|
||
private int screenIndex;
|
||
|
||
[SerializeField]
|
||
private List<Toggle> cireToggles = new List<Toggle>();
|
||
|
||
[SerializeField]
|
||
private Button m_LastVideoButton0;
|
||
[SerializeField]
|
||
private Button m_NextVideoButton0;
|
||
[SerializeField]
|
||
private Button m_LastVideoButton1;
|
||
[SerializeField]
|
||
private Button m_NextVideoButton1;
|
||
|
||
private int videoIndex;
|
||
|
||
[SerializeField]
|
||
private GameObject m_CireVideoToggleItem;
|
||
|
||
private List<Toggle> cireVideoToggles = new List<Toggle>();
|
||
|
||
private Tween m_ScreenVideo;
|
||
[SerializeField]
|
||
private RectTransform m_ScreenContent;
|
||
|
||
private Tween m_VideoTween;
|
||
private RectTransform m_VideoContent;
|
||
|
||
private GameObject m_NowScreenObj;
|
||
[SerializeField]
|
||
private List<GameObject> VideoScreens = new List<GameObject>();
|
||
|
||
[SerializeField]
|
||
private Text m_VideoInfo;
|
||
|
||
[SerializeField]
|
||
private Button m_ResetButton;
|
||
|
||
public MediaPlayer m_VideoPlayer;
|
||
|
||
// Start is called before the first frame update
|
||
IEnumerator Start()
|
||
{
|
||
yield return new WaitForSeconds(2);
|
||
for (int i = 0; i < m_Video1Toggle.Count; i++)
|
||
{
|
||
int index = i;
|
||
m_Video1Toggle[index].onValueChanged.AddListener((b)=>
|
||
{
|
||
if (b)
|
||
{
|
||
m_ScreenVideo.Kill();
|
||
screenIndex = index;
|
||
cireToggles[index].isOn = true;
|
||
m_NowScreenObj = VideoScreens[index];
|
||
m_ScreenVideo = m_ScreenContent.DOAnchorPosY(616 * index,0.5f);
|
||
InitCireVideoItems();
|
||
}
|
||
});
|
||
}
|
||
m_LastScreenButton.onClick.AddListener(()=>
|
||
{
|
||
screenIndex--;
|
||
if(screenIndex <= 0)
|
||
{
|
||
screenIndex = 0;
|
||
}
|
||
m_Video1Toggle[screenIndex].isOn = false;
|
||
m_Video1Toggle[screenIndex].isOn = true;
|
||
});
|
||
m_NextScreenButton.onClick.AddListener(() =>
|
||
{
|
||
screenIndex++;
|
||
if (screenIndex >= cireToggles.Count)
|
||
{
|
||
screenIndex = (cireToggles.Count - 1);
|
||
}
|
||
m_Video1Toggle[screenIndex].isOn = false;
|
||
m_Video1Toggle[screenIndex].isOn = true;
|
||
});
|
||
m_LastVideoButton0.onClick.AddListener(() =>
|
||
{
|
||
videoIndex--;
|
||
if (videoIndex <= 0)
|
||
{
|
||
videoIndex = 0;
|
||
}
|
||
SendMessageToScreen(0);
|
||
cireVideoToggles[videoIndex].isOn = false;
|
||
cireVideoToggles[videoIndex].isOn = true;
|
||
});
|
||
m_NextVideoButton0.onClick.AddListener(() =>
|
||
{
|
||
videoIndex++;
|
||
if (videoIndex >= cireVideoToggles.Count)
|
||
{
|
||
videoIndex = (cireVideoToggles.Count - 1);
|
||
}
|
||
SendMessageToScreen(3);
|
||
cireVideoToggles[videoIndex].isOn = false;
|
||
cireVideoToggles[videoIndex].isOn = true;
|
||
});
|
||
m_LastVideoButton1.onClick.AddListener(() =>
|
||
{
|
||
videoIndex--;
|
||
if (videoIndex <= 0)
|
||
{
|
||
videoIndex = 0;
|
||
}
|
||
SendMessageToScreen(0);
|
||
cireVideoToggles[videoIndex].isOn = false;
|
||
cireVideoToggles[videoIndex].isOn = true;
|
||
});
|
||
m_NextVideoButton1.onClick.AddListener(() =>
|
||
{
|
||
videoIndex++;
|
||
if (videoIndex >= cireVideoToggles.Count)
|
||
{
|
||
videoIndex = (cireVideoToggles.Count - 1);
|
||
}
|
||
SendMessageToScreen(3);
|
||
cireVideoToggles[videoIndex].isOn = false;
|
||
cireVideoToggles[videoIndex].isOn = true;
|
||
});
|
||
|
||
//m_VideoSlider.onValueChanged.AddListener((v) =>
|
||
//{
|
||
// m_VideoNowTime.text = "00:00";
|
||
// m_VideoAllTime.text = "00:00";
|
||
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>
|
||
//});
|
||
m_ResetButton.onClick.AddListener(OnResetVideo);
|
||
m_Video1Toggle[0].isOn = false;
|
||
m_Video1Toggle[0].isOn = true;
|
||
screenIndex = 0;
|
||
}
|
||
|
||
|
||
private void InitCireVideoItems()
|
||
{
|
||
for (int i = (cireVideoToggles.Count - 1); i >= 0; i--)
|
||
{
|
||
Destroy(cireVideoToggles[i].gameObject);
|
||
}
|
||
cireVideoToggles.Clear();
|
||
foreach (Transform item in m_NowScreenObj.transform.GetChild(0).GetChild(0).GetChild(0))
|
||
{
|
||
GameObject cireVideo = Instantiate(m_CireVideoToggleItem, m_CireVideoToggleItem.transform.parent);
|
||
cireVideo.SetActive(true);
|
||
cireVideoToggles.Add(cireVideo.GetComponent<Toggle>());
|
||
}
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ
|
||
m_VideoTween.Kill();
|
||
m_VideoContent = m_NowScreenObj.transform.GetChild(0).GetChild(0).GetChild(0).GetComponent<RectTransform>();
|
||
for (int i = 0; i < cireVideoToggles.Count; i++)
|
||
{
|
||
int index = i;
|
||
cireVideoToggles[index].onValueChanged.AddListener((b) =>
|
||
{
|
||
m_VideoTween = m_VideoContent.DOAnchorPosX(-1086.806f * index, 0.5f);
|
||
m_VideoInfo.text = "<22><>Ļ" + (screenIndex + 1) + ":<3A><>Ƶ" + (videoIndex + 1);
|
||
InitVideoPlay(index);
|
||
});
|
||
}
|
||
m_VideoContent.anchoredPosition= Vector2.zero;
|
||
videoIndex = 0;
|
||
cireVideoToggles[0].isOn = false;
|
||
cireVideoToggles[0].isOn = true;
|
||
}
|
||
|
||
/// <summary>
|
||
/// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>Ƶģʽ
|
||
/// </summary>
|
||
private void InitVideoPlay(int index)
|
||
{
|
||
if (m_VideoPlayer == null)
|
||
return;
|
||
m_VideoPlayer.OpenMedia(new MediaPath(m_NowScreenObj.transform.GetChild(0).GetChild(0).GetChild(0).GetChild(index).GetComponent<VideoAvproPath>()._mediaReference, MediaPathType.RelativeToStreamingAssetsFolder),false);
|
||
m_VideoPlayer.Control.Seek(0);
|
||
m_VideoPlayer.Control.Stop();
|
||
Debug.Log(m_NowScreenObj.transform.GetChild(0).GetChild(0).GetChild(0).GetChild(index).GetComponent<VideoAvproPath>()._mediaReference);
|
||
}
|
||
|
||
// Update is called once per frame
|
||
void Update()
|
||
{
|
||
m_DateText.text = DateTime.Now.ToString("yyyy-MM-dd");
|
||
m_TimeText.text = DateTime.Now.ToString("HH:mm");
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// <20><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD><EFBFBD><EFBFBD>ͣ
|
||
/// </summary>
|
||
public void OnPlayStopVideo(int index)
|
||
{
|
||
if(index == 0)
|
||
{
|
||
m_VideoPlayer.Control.Play();
|
||
SendMessageToScreen(1);
|
||
}
|
||
else
|
||
{
|
||
m_VideoPlayer.Control.Stop();
|
||
SendMessageToScreen(2);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// <20><><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD>
|
||
/// </summary>
|
||
private void OnResetVideo()
|
||
{
|
||
m_VideoPlayer.Control.Seek(0);
|
||
SendMessageToScreen(4);
|
||
}
|
||
|
||
/// <summary>
|
||
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
/// 0:<3A><>һ<EFBFBD><D2BB> 1:<3A><><EFBFBD><EFBFBD> 2:<3A><>ͣ 3:<3A><>һ<EFBFBD><D2BB> 4:<3A>ز<EFBFBD>
|
||
/// </summary>
|
||
private void SendMessageToScreen(int operationCode)
|
||
{
|
||
string operationCodeStr = "";
|
||
if(operationCode == 0)
|
||
{
|
||
operationCodeStr = "<22><>һ<EFBFBD><D2BB>";
|
||
}
|
||
else if(operationCode == 1)
|
||
{
|
||
operationCodeStr = "<22><><EFBFBD><EFBFBD>";
|
||
}
|
||
else if (operationCode == 2)
|
||
{
|
||
operationCodeStr = "<22><>ͣ";
|
||
}
|
||
else if (operationCode == 3)
|
||
{
|
||
operationCodeStr = "<22><>һ<EFBFBD><D2BB>";
|
||
}
|
||
else if (operationCode == 4)
|
||
{
|
||
operationCodeStr = "<22>ز<EFBFBD>";
|
||
}
|
||
Debug.Log("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ" + (screenIndex + 1) + "<22>ĵ<EFBFBD>" + (videoIndex + 1) + "<22><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>" + operationCodeStr);
|
||
}
|
||
}
|