我正在使用Unity 5个人版(免费)在Streaming Assets
下的Assets
文件夹中播放.ogv电影文件。代码是
Handheld.PlayFullScreenMovie("coc.ogv", Color.black, FullScreenMovieControlMode.Full, FullScreenMovieScalingMode.AspectFill);
coc.ogv
是文件名。该函数在OnMouseDown()
函数上调用。但是当我在Android设备上试用它时,它只会产生黑色闪烁并且不做任何其他事情。没有错误或警告。
请帮忙。
答案 0 :(得分:0)
好的,我们走了。如果您正在构建PC,请转到MovieTexture和.ogv格式。如果是Android版,请选择.mp4(h.264小于或等于480p)。使用Application.StreamingAssetsPath
获取assets
文件中的jar
文件夹。
答案 1 :(得分:0)
我找到的解决方案是将视频存储在Application.streamingAssetsPath
文件夹中,然后在运行时将文件复制到Application.persistentDataPath
文件夹中,然后从那里读取。
string arc = "core1280x800.mp4";
string defaultFilePath = Path.Combine(Application.streamingAssetsPath, arc);
string filePath = Path.Combine(Application.persistentDataPath, arc);
byte[] bytes = null;
if (!File.Exists(filePath))
{
if (Application.platform == RuntimePlatform.Android)
{
WWW archivo = new WWW(defaultFilePath);
while (!archivo.isDone)
{ } // c'mon, you can do better than this! ¬ ¬
bytes = archivo.bytes;
File.WriteAllBytes(filePath, bytes);
}
else
{
if (File.Exists(defaultFilePath))
{
bytes = File.ReadAllBytes(defaultFilePath);
File.Copy(defaultFilePath, filePath);
}
}
}
Handheld.PlayFullScreenMovie(filePath, Color.black, FullScreenMovieControlMode.Hidden);
虽然文档只说明将视频文件放在Application.streamingAssetsPath
文件夹上已经足够了,但是几天来我无法播放任何文件,无论是分辨率还是格式。使用此代码,我能够播放分辨率高于480p的视频文件,我只测试了MP4和MOV文件,但只有MP4可以工作; MOV只是默默无闻。
PS。我知道,while循环并不优雅,不推荐,但现在它很简单并且有效。