用unity做一个培训视频播放窗口

界面

在这里插入图片描述

工程组件

在这里插入图片描述

脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Video;
using Valve.VR;

public class UI_systerm : MonoBehaviour
{

    
    [Space(30)]
    [Header("PIC")]
    public Image PIC;
    public Sprite[] PICS;
    public Sprite play, pause,max,min;
    [Space(30)]

    [Header("VID")]
    public VideoPlayer VID;
    public RawImage rawimage_max;
    public RenderTexture vplayer;
    public VideoClip[] VIDS;
    public Button VID_PLAY;
    public Button VID_SPEED_UP;
    public Button VID_SPEED_DOWN;
    public Button VID_AUDIO;
    public Button VID_MAX;
    public Scrollbar BAR;
    public Scrollbar AUDIO_BAR;

    [Space(30)]
    public Button BTN_L;
    public Button BTN_M;
    public Button BTN_R;
    public Button BTN_PIC;
    public Button BTN_CLIP;

    [Space(30)]
    public Text TT;
    public Text BEGIN_TT;
    public Text END_TT;

    [Space(30)]
    public Toggle TG;

    int i = 0;
    int speed = 1;
    bool isvidmax = false,ispicmax=false;
    bool isplay=false;
    bool isaudio = false;
    double time=0f;
    int total = 8;
    int h, m, s,hh,mm,ss;

    void Start()
    {
        //Debug.Log(VIDS[i].length);
            
        
    }

    // Update is called once per frame
    void Update()
    {

        if (TG.isOn)
        {
            VID.clip = VIDS[i];
            PIC.sprite = PICS[i];
            //BEGIN_TT.text = VID.time.ToString();
            timetotext();
            TT.text = (VIDS[i].name.ToString());
            //Debug.Log("片长"+VIDS[i].length);
            //Debug.Log("进度"+VID.time);
            bar_time();
            Debug.Log( VID.GetDirectAudioVolume(0));
             
            //Debug.Log(isplay);
        }
        else
        {
            TT.text = ("请勾选下方内容。");
            VID.Pause();
        }

    }
    public void scroller_volume()
    {
        VID.SetDirectAudioVolume(0, AUDIO_BAR.value);
    }
    /// <summary>
    /// 调出音量
    /// </summary>
    public void audioset()
    {
        if (isaudio == false)
        {
            GameObject audio_bar = GameObject.Find("Scrollbar_audio");
            audio_bar.transform.GetComponent<RectTransform>().anchoredPosition3D = new Vector3(118f,-85,0);
            isaudio = true;
        }
        else
        {
            GameObject audio_bar = GameObject.Find("Scrollbar_audio");
            audio_bar.transform.GetComponent<RectTransform>().anchoredPosition3D = new Vector3(314f, -85, 0);
            isaudio =false;
        }
        
    }
    ///
    ///图片最大化
    ///
    public void max_pic()
    {
        if (ispicmax == false && BTN_PIC.image.sprite == max)
        {
            rawimage_max.transform.position = new Vector3(0, 0, 0);
            rawimage_max.texture = PIC.sprite.texture;
            ispicmax = true;
            BTN_PIC.image.sprite = min;
            isvidmax = false;
            BTN_CLIP.image.sprite = max;
            //BTN_PIC.transform.GetComponent<RectTransform>().anchoredPosition3D = new Vector3(250, 135, 0);//rect transform坐标
        }
        else if (ispicmax == true && BTN_PIC.image.sprite == min)
        {
            rawimage_max.transform.position = new Vector3(800, 0, 0);
            rawimage_max.texture = null;
            ispicmax = false;
            BTN_PIC.image.sprite = max;
            //BTN_PIC.transform.GetComponent<RectTransform>().anchoredPosition3D = new Vector3(-15, -15, 0);
        }
    }

    /// <summary>
    /// 视频最大化
    /// </summary>
    public void max_vid()
    {
        if (isvidmax == false&& BTN_CLIP.image.sprite == max)
        {
            rawimage_max.transform.position=new Vector3(0, 0, 0);
            rawimage_max.texture = vplayer;
            isvidmax = true;
            BTN_CLIP.image.sprite = min;
            ispicmax = false;
            BTN_PIC.image.sprite = max;
        }
        else if(isvidmax == true && BTN_CLIP.image.sprite == min)
        {
            rawimage_max.transform.position = new Vector3(800, 0, 0);
            rawimage_max.texture = null;
            isvidmax = false;
            BTN_CLIP.image.sprite = max;
        }

    }
    /// <summary>
    /// 快进
    /// </summary>
    public void video_speedup()
    {
        VID.time += 5;
    }
    /// <summary>
    /// 快退
    /// </summary>
    public void video_speeddown()
    {
        VID.time -= 5;
    }
    /// <summary>
    /// 时间显示
    /// </summary>
    void timetotext()
    {
        hh= (int)VID.clip.length / 3600;
        mm= (int)(VID.clip.length -hh * 3600)/ 60;
        ss = (int)(VID.clip.length - hh * 3600 - mm * 60);
        h =(int) VID.time / 3600;
        m = (int)(VID.time - h * 3600) / 60;
        s = (int)(VID.time - h *3600 - m * 60);
        BEGIN_TT.text = string.Format("{0:D2}:{1:D2}:{2:D2}", h, m, s);
        END_TT.text = string.Format("{0:D2}:{1:D2}:{2:D2}", hh, mm, ss);
        

    }
    /// <summary>
    /// 进度条
    /// </summary>
    void bar_time()
    {
        BAR.value = (float)(VID.time / VIDS[i].length);

        // 把当前视频播放的时间比例赋值到 Slider 上
        //videoTimeSlider.value = (float)(videoPlayer.time / videoPlayer.clip.length);
    }
    /// <summary>
    /// 播放/暂停
    /// </summary>
    public void button_play()
    {
        if (isplay == false)
        {
           isplay = true;
           VID.Play();
           VID_PLAY.image.sprite = play;

        }
        else
        {            
            isplay = false;
            VID.Pause();
            VID_PLAY.image.sprite = pause;
        }
       
    }

    /// <summary>
    /// 窗口最大化
    /// </summary>
    /// <param name="btn"></param>
    public void ToMaxWindow(Button btn)
    {

    }

    public void speed_up()
    {

    }
    /// <summary>
    /// 下一步
    /// </summary>
    public void button_right()
    {
        if (i < total-1)
        {
            i += 1;
            Debug.Log(i);
        }
        
    }
    /// <summary>
    /// 上一步
    /// </summary>
    public void button_left()
    {
        if (i > 0)
        {
            i -= 1;
            Debug.Log(i);
        }
    }
    public void button_mid()
    {
        //回到其他页面
    }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值