搭建UI
1.首先先创建一个Render TexTure 在创建一个RawImage,
2.在创建Video Player组件 把Render Texture 挂上去(挂在Target Texture上面),Video Clip (可以直接把视频拖上去,也可以写脚本控制)
3.在给滑动条加上Event Trigger 组件,用一个开始拖拽的方法,一个结束拖拽的方法即可
两个方法在脚本里写的有,拖拽在上面即可
实现代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Video;
public class ShuiWenZhiShiButton : MonoBehaviour
{
public GameObject mv_obj;
public VideoClip shipin1,shipin2;
public VideoPlayer videoPlayer;
public Button play_button; //播放按钮
public Button pause_button; //暂停按钮
public Text mv_length_text; //显示视频的长度
public Slider slider_kuajin;
private bool isDrag;
private int hour, minute, second; // 时 分 秒
// Start is called before the first frame update
void Start()
{
Debug.Log (shipin1.length);
//按钮1
button[0].onClick.AddListener(delegate
{
Photoenlable(0);
if (mv_obj.activeSelf==false)
{
OnorOff_MVjiemian(true);
}
videoPlayer.clip = shipin1;
});
//按钮2
button[1].onClick.AddListener(delegate
{
Photoenlable(1);
if (mv_obj.activeSelf == false)
{
OnorOff_MVjiemian(true);
}
videoPlayer.clip = shipin2;
});
//按钮3
button[2].onClick.AddListener(delegate
{
Photoenlable(2);
});
}
//打开或者关闭视频界面
public void OnorOff_MVjiemian(bool tra)
{
mv_obj.SetActive(tra);
}
//视频播放
public void MV_Play()
{
play_button.gameObject.SetActive(false);
pause_button.gameObject.SetActive(true);
videoPlayer.Play();
}
//视频暂停
public void MV_Pause()
{
play_button.gameObject.SetActive(true);
pause_button.gameObject.SetActive(false);
videoPlayer.Pause();
}
//显示视频的时间
public void ShiPin_Length()
{
hour = (int)videoPlayer.time / 3600;
minute = ((int)videoPlayer.time - hour * 3600) / 60;
second = (int)videoPlayer.time - hour * 3600 - minute * 60;
mv_length_text.text = string.Format("{0:D2}:{1:D2}:{2:D2}", hour, minute, second);
}
/// 修改视频播放进度
private void ChangeVideoPlayTime()
{
if (isDrag == true)
{
videoPlayer.time = slider_kuajin.value*videoPlayer.clip.length;
}
}
//修改进度条
public void XiuGaiJinDuTiao()
{
if (!isDrag)
{
slider_kuajin.value = (float)(videoPlayer.time / videoPlayer.clip.length);
}
}
//开始拖拽
public void OnDragdrop()
{
isDrag = true;
}
//结束拖拽
public void OnEndDrag()
{
isDrag = false;
videoPlayer .time = slider_kuajin.value* videoPlayer.clip.length;
}
// Update is called once per frame
void Update()
{
if (videoPlayer.clip !=null)
{
ChangeVideoPlayTime();
XiuGaiJinDuTiao();
ShiPin_Length();
}
}
}
最后自行测试即可