Unity—VideoPlayer组件

VideoPlayer组件

在Unity中播放视频使用VideoPlayer组件;

在将VideoPlayer的Texture赋值给RawImage的Texture;

VideoPlayer中source来源可以是本地,也可以是url;

public class VideoControl : MonoBehaviour
{
    private VideoPlayer videoPlayer;
    private RawImage rawImage;
    private Button playBtn;					//开始播放按钮
    public Slider percentPlaySdr;			//进度条
    public Hander handle;					//进度条拖动块
    void Start () 
    {
        videoPlayer = this.GetComponent <VideoPlayer> ();
        rawImage = this.GetComponent <RawImage> ();
        playBtn = this.GetComponent<Button>();
        playBtn.onClick.AddListener(OnClickPlayBtn);
        
        videoPlayer.prepareCompleted += (x) =>
        {
            
            rawImage.texture = videoPlayer.texture;
            videoPlayer.errorReceived += (source, message) =>
            {
                Debug.LogError(message);
            }; 
            videoPlayer.Play();
            Debug.Log("开始播放");
        };
    }
    
    void Update ()
    {
        if(videoPlayer.texture == null)
            return;

        if(videoPlayer.isPlaying)
            percentPlaySdr.value = (float)videoPlayer.frame / videoPlayer.frameCount;
 
        if(handle.isON)
            videoPlayer.frame = (long) (percentPlaySdr.value * videoPlayer.frameCount);
    }

    private void OnClickPlayBtn()
    {
        if(videoPlayer.isPaused)
            videoPlayer.Play();
        else if(videoPlayer.isPlaying)
            videoPlayer.Pause();
    }
}

public class Hander : MonoBehaviour,IPointerEnterHandler,IPointerExitHandler
{
    public bool isON = false;
    public void OnPointerEnter(PointerEventData eventData)
    {
        isON = true;
    }

    public void OnPointerExit(PointerEventData eventData)
    {
        isON = false;
    }
}
posted @   小紫苏  阅读(1347)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示