【问题标题】:Unity + Android + Daydream, download video file and play in appUnity + Android + Daydream,下载视频文件并在应用程序中播放
【发布时间】:2017-02-23 11:34:40
【问题描述】:
我想从 URL 下载视频并在我为 Android 制作的 unity / Daydream 应用中播放。
我不确定将下载的视频保存在哪里,以便应用程序使用它。
我可以将视频下载到 Android Application.persistentDataPath,但是当我尝试将视频下载到 StreamingAssets 路径时,它似乎不起作用。
我觉得我需要从 StreamingAssets 路径读取视频文件?
感谢您的帮助:)
【问题讨论】:
标签:
android
unity3d
daydream
【解决方案1】:
我通过对 Daydream Unity SDK 中的 Daydream 视频示例稍作修改,成功实现了这一点。在 SwitchVideo.cs 的“ShowSample”函数中,我替换了加载新视频的代码。
我正在做的是:
- 将视频下载到 Application.persistentDataPath 下。
- 在文件路径前添加
file://。我相信这是必要的,因为您还可以使用 jar: 访问内置于 jar 中的文件,这些文件需要解压缩。您下载的没有。
- 将
GvrVideoPlayerTexture.videoURL 设置为此路径。
- 在这种情况下,
type 设置为 other,内容 ID 和提供者 ID 留空。
-
致电ReInitializeVideo。
var www = new WWW("https://archive.org/download/Pbtestfilemp4videotestmp4/video_test_512kb.mp4");
var path = Application.persistentDataPath + "/a.mp4";
while (!www.isDone) {
print(www.progress);
}
File.WriteAllBytes(path, www.bytes);
var video = videoSamples[i].GetComponentInChildren<GvrVideoPlayerTexture>();
video.videoURL = "file://" + path;
video.ReInitializeVideo();
请注意,您也可以流式传输视频。如果您将 videoURL 设置为 http 路径,它应该可以工作,但我假设您想要一些可以保存视频以供离线使用的东西。