unity videoplayer 进度条控制

private bool isForward = true;
private long frame;

private void OnSliderDragStart()
{
    VideoPlayer.Pause();
}

private void OnSliderDragEnd()
{
    frame = VideoPlayer.frameCount * VideoSlider.value ;
    isForward = frame >= VideoPlayer.frame;
    VideoPlayer.time = length * VideoSlider.value ;
    VideoPlayer.Play();
}

private void Update()
{
    if (VideoPlayer != null && VideoPlayer.isPrepared)
    {
        if (isForward && VideoPlayer.frame < frame)
            return;
        if (!isForward && VideoPlayer.frame > frame)
            return;
        VideoSlider.value = VideoPlayer.time / VideoPlayer.length ;
    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Unity中的VideoPlayer组件可以用来控制视频的播放,并且可以获取视频的播放进度。下面是一个演示如何使用Unity VideoPlayer组件来实现进度条的例子: ```csharp using UnityEngine; using UnityEngine.UI; using UnityEngine.Video; public class VideoPlayerController : MonoBehaviour { public VideoPlayer videoPlayer; public Slider progressBar; private void Start() { videoPlayer.loopPointReached += OnVideoEnd; } private void Update() { if (videoPlayer.isPlaying) { progressBar.value = (float)videoPlayer.frame / (float)videoPlayer.frameCount; } } public void PlayVideo() { videoPlayer.Play(); } public void PauseVideo() { videoPlayer.Pause(); } public void StopVideo() { videoPlayer.Stop(); } private void OnVideoEnd(VideoPlayer vp) { progressBar.value = 1f; } } ``` 在上面的例子中,我们首先需要在场景中添加一个VideoPlayer组件和一个Slider组件,分别用来控制视频的播放和显示进度条。然后,我们创建一个VideoPlayerController脚本,将其挂载到一个空物体上。 在VideoPlayerController脚本中,我们将VideoPlayer组件和Slider组件分别赋值给videoPlayer和progressBar变量。在Start方法中,我们订阅了VideoPlayer的loopPointReached事件,当视频播放完成时会调用OnVideoEnd方法。 在Update方法中,我们通过videoPlayer.frame和videoPlayer.frameCount来计算视频的播放进度,并将其赋值给progressBar的value属性,从而实现进度条的更新。 最后,我们还提供了PlayVideo、PauseVideo和StopVideo方法,分别用来播放、暂停和停止视频的播放。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值