unity获取视频当前帧数/时间

Get current frame number / time of video in unity

我遇到了问题,如果可能的话请帮助我。

我在练习团结,我在努力为自己做某事。我正在使用 UI 和 canvas 原始图像播放视频,我需要的是:

我想告诉动画师在电影到达特定帧或时间时启动特殊动画,例如当它到达 10 秒时我想让电影停止并触发该动画。

我对播放或暂停我的视频或在动画师中触发动画没有任何问题...

我的问题是我不知道如何使用脚本获取电影中当前播放的帧数

我尝试使用时间函数来解决我的问题,但它有两个缺点,首先它不准确!!每次它都会导致一个小的不同结果,我不知道为什么,其次,如果我改变其他东西,例如在那部电影之前的动作,它会变得很难

简而言之,我的问题是:有没有什么办法可以使用 unity 脚本获取电影的当前帧数? (正在使用 UI 和 canvas 以及原始图像播放的电影)

非常感谢...

Is there any way to get the current frame number of a movie using script in unity ?

。您可以使用 VideoPlayer.frame 变量获取当前视频帧。

请注意,它的工作方式类似于数组索引。 0是第一帧,1是第二帧。


您似乎在这个问题的标题中混淆了视频帧和视频时间。它们是两种不同的东西。

您可以通过VideoPlayer.time获取视频时间。您只需在 Update 函数中检查它何时为 10 秒,然后执行某些操作。

VideoPlayer vidPlayer = null;
void Update()
{
    if (vidPlayer.time == 10)
    {
        ///
    }
}

请参阅 here 了解如何使用 VideoPlayer API 播放视频。