Unity 打包Android apk 下载视频问题

Yu_Wei_123 2017-09-23 10:57:05
unity 用vuforia 开发一个Android手机AR应用,功能:扫描已经上传好的图片 然后播放相关视频,若是之前该视频还没有播放过,则从服务器加载视频播放 并下载到Application.persistentData路径下保存。若是之前播放过,直接播放本地(即Application.persistentData路径下)视频。现在有一个问题:从服务器加载视频播放 完全可以了 就是下载到到Application.persistentData路径下,该怎么下载呢?我知道类WWW有一个字节数组类型的属性bytes 难道意思是先把下载的视频转换为字节数组,然后再把字节数组转换为视频么?我从网上找了几个相关教程 几乎都是下载服务器上图片(官方文档就是加载图片的https://docs.unity3d.com/540/Documentation/ScriptReference/WWW.html还有这个http://blog.csdn.net/hany3000/article/details/25978395 加载视频我是用协程来完成的 现在代码这个样子的

public void OnButtonClick()
{
string videourl = "";
StartCoroutine(downloadVideo(videourl));
}


IEnumerator downloadVideo(string videourl)
{
WWW www = new WWW(videourl);
yield return www;
if(www.isDone)
{
//下载视频到(视频格式:.mp4)
//Application.persistentData路径

}
}

能不能通过把接接收的字节数组即www.bytes 转换未内存流存到本地 然后在播放呢?

MemoryStream ms = new MemoryStream(www.bytes);
FileStream fs = new FileStream(Application.persistentData,FileMode.CreateNew);
StreamWriter sw = new StreamWriter(ms);
sw.WriteTo(fs);
ms.Close();
fs.Close();
sw.Close();

通过这种方式 行不行呢?
...全文
218 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yu_Wei_123 2017-09-23
  • 打赏
  • 举报
回复
纠结了 两天 终于找到方法了 就是把接收的字节数组 转换为 文件流 存到本地 就可以了 具体代码如下

FileStream fs= new FileStream(Application.persistentData,FileMode.Creat,FileAccess.Write);
fs.Write(www.bytes,0,www.bytes.length);
fs.Close();
就是上面三句代码 就可以了 如此的简单 我却纠结了两天 究其原因 还是基本功不扎实 基本的流操作都不知道

2,538

社区成员

发帖
与我相关
我的任务
社区描述
Unity3D相关内容讨论专区
游戏unity 技术论坛(原bbs)
社区管理员
  • Unity3D
  • 芝麻粒儿
  • 「已注销」
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

Unity3D社区公告:

  1. 社区致力于解决各种Unity3D相关的“疑难杂症”。
  2. 社区不允许发布与Unity3D或相关技术无关内容。
  3. 社区版主邀请各位一道为打造优秀社区不懈努力。

试试用AI创作助手写篇文章吧