[unity][通过代码]在unity中控制视频进度,videoplayer使用slider控制播放进度,给视频加个进度条

  • Post author:
  • Post category:其他


using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Video;

public class VideoPlayerSliderController : MonoBehaviour
{
    public VideoPlayer m_player;
    public Slider m_slider;
    public bool m_bMouseUp = true;
    void Start()
    {
        m_slider.onValueChanged.AddListener((float value) =>
        {
            if (!m_bMouseUp)
            {
                SliderEvent(value);
            }
        });
    }

    // 如果启用 MonoBehaviour,则每个固定帧速率的帧都将调用此函数
    private void FixedUpdate()
    {
        if (m_bMouseUp)
        {
            m_slider.value = m_player.frame / (m_player.frameCount * 1.0f);
        }
    }

    public void PointerDown()
    {
        m_player.Pause();
        m_bMouseUp = false;
    }

    public void PointerUp()
    {
        m_player.Play();
        m_bMouseUp = true;        
    }

    public void SliderEvent(float value)
    {
        m_player.frame = long.Parse((value * m_player.frameCount).ToString("0."));
    }
}

在这里插入图片描述

在这里插入图片描述



版权声明:本文为JianShengShuaiest原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。