如何应用和播放 Unity Streaming Assets 文件夹中的视频作为纹理 (MovieTexture)

How to apply and play a video from the Unity Streaming Assets folder as a texture (MovieTexture)

我正在尝试从 Streaming Assets 文件夹中获取视频 (.ogv),将其应用到表面上并播放。 (下面添加了 C# 代码)- Unity 5 Personal

void Start () {
 private MovieTexture myMoviePlayerTexture;

 string filePath = System.IO.Path.Combine(Application.streamingAssetsPath, "test.ogv");

 WWW www = new WWW("file:///" + filePath);
 Renderer r = GetComponent<Renderer>();
 r.material.mainTexture = www.movie;
 www.movie.Play();
}

添加到简单平面的 C# 脚本。

然而,当我将 MovieTexture 添加到平面(从 assets 文件夹)时,它播放没有任何问题。

((MovieTexture)GetComponent<Renderer>().material.mainTexture).Play();

编辑:问题:视频无法从 Streaming Assets 文件夹中播放,似乎已加载 material 但无法播放。

任何帮助都适用。谢谢

编辑

这是游戏视图:link and this is the folder structure link没什么特别的,只是一些测试视频

你问题中的代码甚至没有编译。错误太多了。

无论如何,不​​要使用 www.movie.Play(); 直接从 WWW 对象播放视频。首先从 WWW 获取 MovieTexture,然后从那里播放视频。另外,在播放视频之前检查 MovieTexture.isReadyToPlay 是否为 true。您可以在 coroutineUpdate() 函数中执行此操作。

确保 test.ogv 视频位于 StreamingAssets 文件夹中。您的屏幕截图未显示 StreamingAssets 文件夹中的内容。

最后,在飞机上播放视频已经过时了。您 在 Unity 的 RawImage 上播放视频,这在 Unity 中更容易使用。

我无法判断您使用的是哪个 Unity 5 版本,但请更新至 5.5 或更高版本,然后使用以下代码:

MovieTexture myMoviePlayerTexture;
void Start()
{
    string filePath = System.IO.Path.Combine(Application.streamingAssetsPath, "test.ogv");

    WWW www = new WWW("file:///" + filePath);
    Renderer r = GetComponent<Renderer>();
    myMoviePlayerTexture = www.GetMovieTexture();

    r.material.mainTexture = myMoviePlayerTexture;
}

void Update()
{
    if (myMoviePlayerTexture.isReadyToPlay && !myMoviePlayerTexture.isPlaying)
    {
        myMoviePlayerTexture.Play();
    }
}

值得注意的是 MovieTexture 现已弃用。请参阅 post 了解最新的视频播放方法。