我是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();
}
答案 0 :(得分:0)
此方法是从协同例程运行的吗? 您还提到在调试模式下,URL甚至没有设置为该值?
动作: 在不使用协例程的情况下运行完全相同的代码,并在将静态url值传递给确定性方法时检查是否出现问题。 (即不使用协程)。 如果可行,请检查正在调用您的例程的代码,并考虑将其添加到您的问题中,以演示调用流程。
我正在猜测该问题的代码示例已简化。正如问题注释中提到的那样,该问题存在于代码示例之外。
您是否使用第二个协同例程首先将URL检索到视频源文件? 如果您尝试通过将恒定的url传递到启动视频播放器的协同例程来隔离此问题, 如果可行,则为第一个协程添加第二个yield语句,以便您既可以准备url值,也可以准备加载视频源的视频播放器对象。