Unity中视频播放控制

Unity中视频播放控制

基于Unity提供的VideoPlayer组件实现,播放进度的控制。播放组件的自动隐藏,显示。如图:

在这里插入图片描述

部分代码如下:
  1. 读取当前视频时间,设置格式部分代码
  /// <summary>
    /// 更新视频的播放时间
    /// </summary>
    public void UpdateVideoTimeText()
    {
        videoProgress.fillAmount = ((float)videoPlayer.frame / (float)videoPlayer.frameCount);

        VideoNowTime.text = ((int)videoPlayer.time / 60).ToString("D2") + ":" +
            ((int)videoPlayer.time % 60).ToString("D2");
    }
  1. 获取播放进度,并设置视频跳转部分代码
 private void TrySkip(PointerEventData eventData)
    {
        Vector2 localPoint;
        if (RectTransformUtility.ScreenPointToLocalPointInRectangle(videoProgress.rectTransform, eventData.position,
                null, out localPoint))
        {
            float pct = Mathf.InverseLerp(videoProgress.rectTransform.rect.xMin,
                videoProgress.rectTransform.rect.xMax,
                localPoint.x);
            SkipToTarget(pct);
        }
    }
    private void SkipToTarget(float pct)
    {
        var frame = videoPlayer.frameCount * pct;
        videoPlayer.frame = (long)frame;
        videoPlayer.Play();
        isPause=false;
        videoControlling?.Invoke();
        playControllerImg.sprite = playSprite;
    }
  1. 控制视频操作界面显示、关闭部分代码
    void OnEnable()
    {
        StartCoroutine("DelayHide");
    }
    void Start()
    {
        videoController.videoPause += () =>
        {
            StopCoroutine("DelayHide");
            if (animator.GetCurrentAnimatorStateInfo(0).IsName("FadeOutAnimation"))
            {
                StartCoroutine("Show");
            }
        };

        videoController.videoControlling += () =>
        {
            StopCoroutine("DelayHide");
            if (!videoController.IsPause)
                StartCoroutine("DelayHide");
        };
    }
      public IEnumerator Show()
    {
        yield return null;
        animator.SetTrigger("FadeIn");
    }
    public IEnumerator DelayHide()
    {
        yield return new WaitForSeconds(4.0f);
        animator.SetTrigger("FadeOut");
    }

完整代码:

https://gitee.com/Sun_ME/Unity_VideoPlayerController.git

更多内容,欢迎关注:

在这里插入图片描述

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Unity,有多种方法可以实现视频播放。其一种方法是使用第三方插件,如MobileMovieTexture和EasyMovieTexture。这些插件可以在移动端播放视频,并支持本地播放和RTSP。 另一种方法是使用Unity自带的Video Player控件。这个控件可以在Unity 5.6及更高版本使用。它支持多种视频格式,如.mov、.mpg、.mpeg、.mp4、.avi和.asf。你可以通过创建Video Player组件来播放视频,并设置视频的显示区域和控制模式。 此外,Unity还提供了一个名为Handheld.PlayFullScreenMovie的标准视频播放接口。这个接口支持PC和移动端播放多种视频格式,包括本地和在线视频。你可以使用视频的URL或文件路径作为参数来调用这个接口,并设置视频的显示颜色和控制模式。 综上所述,在Unity播放视频可以通过使用第三方插件如MobileMovieTexture和EasyMovieTexture,或者使用Unity自带的Video Player控件,还可以使用Handheld.PlayFullScreenMovie接口来实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Unity视频播放的各种实现方式汇总](https://blog.csdn.net/qq_21743659/article/details/108725249)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [unity5.6 播放视频](https://download.csdn.net/download/u013482430/9872389)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值