如何应用和播放 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
。您可以在 coroutine
或 Update()
函数中执行此操作。
确保 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 了解最新的视频播放方法。
我正在尝试从 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
。您可以在 coroutine
或 Update()
函数中执行此操作。
确保 test.ogv 视频位于 StreamingAssets 文件夹中。您的屏幕截图未显示 StreamingAssets 文件夹中的内容。
最后,在飞机上播放视频已经过时了。您
我无法判断您使用的是哪个 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
现已弃用。请参阅