从scriptl更新时无法播放Unity VideoPlayer.url

时间:2019-08-21 18:45:41

标签: unity3d vuforia

我是Unity的新手,正在尝试通过我的脚本更新VideoPlayer。我已经确认代码可以使用预设值,但是运行videoPlayer.url = "new video url"时它将无法播放。

这是我播放视频的代码。这将起作用,但是一旦我给它提供了要更新的网址,它只会更改源,但不会播放视频。

public IEnumerator playVideo(string videoYear) {
        // This line updates the url but the video will not actually play.
        videoPlayer.url = "example.com/app/" + videoYear + ".mp4";

            videoPlayer.Prepare();
            WaitForSeconds waitForSeconds = new WaitForSeconds(1);

            while(!videoPlayer.isPrepared) 
            {
                yield return waitForSeconds;
                break;
            }

            rawImage.texture = videoPlayer.texture;
            videoPlayer.Play();
    }

1 个答案:

答案 0 :(得分:0)

此方法是从协同例程运行的吗? 您还提到在调试模式下,URL甚至没有设置为该值?

动作: 在不使用协例程的情况下运行完全相同的代码,并在将静态url值传递给确定性方法时检查是否出现问题。 (即不使用协程)。 如果可行,请检查正在调用您的例程的代码,并考虑将其添加到您的问题中,以演示调用流程。

我正在猜测该问题的代码示例已简化。正如问题注释中提到的那样,该问题存在于代码示例之外。

您是否使用第二个协同例程首先将URL检索到视频源文件? 如果您尝试通过将恒定的url传递到启动视频播放器的协同例程来隔离此问题, 如果可行,则为第一个协程添加第二个yield语句,以便您既可以准备url值,也可以准备加载视频源的视频播放器对象。