【问题标题】:How to Rewind Video Player in Unity?如何在 Unity 中倒带视频播放器?
【发布时间】:2021-09-22 06:13:58
【问题描述】:

我正在尝试在 Unity 中倒带 VideoPlayer,同时我正在使用新的 VideoPlayer API 和 mp4。我尝试将播放速度设置为负数,但它会暂停。 我目前的解决方案是

在我的快退按钮脚本中:

void Update ()
{

    if (rewind == true) {
        VideoController.Backward2Seconds();

    }

}

在我的 VideoController 脚本中

public void Backward2Seconds() {
    if (!IsPlaying) return;
        videoPlayer.time = videoPlayer.time - 2;
}

有没有更好的方法?因为这是滞后的。

【问题讨论】:

    标签: c# unity5 video-player


    【解决方案1】:

    很遗憾,恐怕您的第一次尝试是最好的,只是您的平台不支持它。它可以在其他设备上工作。根据VideoPlayer doc:

    对负值的支持取决于平台

    由于此解决方案似乎不适用于您的设备,因此您的解决方法可能会通过考虑每帧之间经过的时间来改进。请尝试以下操作:

    在你的 RewindButton 脚本中

    void Update ()
    {
        if (rewind == true) {
            VideoController.Backward(Time.deltaTime);
        } 
    }
    

    在您的 VideoController 脚本中

    public float Speed;
    
    public void Backward(float deltaTime) 
    {
        if (!IsPlaying) return;
            videoPlayer.time = videoPlayer.time - deltaTime*Speed;
    }
    

    这应该可以让您控制倒带的速度,同时获得更流畅的效果

    【讨论】:

    • 我试了一下,好像确实让播放更流畅了。不是很多,但确实有所改善。
    【解决方案2】:

    由于“倒带”一词经常令人困惑,我想会有一些人来这里研究如何从头开始回放视频。

    这就是我的做法。我多次使用此代码(在 Android 和 iOS 上测试)。您可以拨打PlayCurrentVideoClip重播当前视频剪辑。

        public void PlayCurrentVideoClip()
        {
            Assert.IsNotNull(videoPlayer.clip);
            PlayVideoClip(videoPlayer.clip);
        }
    
        public void PlayVideoClip(VideoClip _vc) {
            StartCoroutine(PlayVideoClipCoroutine(_vc));
        }
    
        IEnumerator PlayVideoClipCoroutine(VideoClip _vc) {
            videoPlayerUI?.SetActive(true);
            yield return new WaitForEndOfFrame(); // safely wait 1 frame for the UI to be active
            SetVideoClip(_vc);
            videoPlayer.enabled = true;
            videoPlayer.frame = 0;
            videoPlayer.Play();
            videoPlayer.EnableAudioTrack(0, true);
            OnPlay.Invoke();
        }
    

    在我的示例中,最终代码位于协程中,因为我必须先启用一些 UI。如果您不必这样做,您应该可以使用普通方法(非协程)。

    唯一的缺点是您可能会看到一些小故障,视频面板会在一瞬间消失。可能很烦人,但不是世界末日。

    【讨论】:

      猜你喜欢
      • 2019-02-08
      • 2013-02-27
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      • 1970-01-01
      • 1970-01-01
      • 2014-05-01
      • 2019-08-13
      相关资源
      最近更新 更多