视+ 收藏本版 +发表新主题
查看: 33287|回复: 1
打印 上一主题 下一主题

[分享] EasyAR扫描识别图播放网络视频

[复制链接]

[分享] EasyAR扫描识别图播放网络视频

devmodel01 发表于 2016-4-23 16:37:40 浏览:  33287 回复:  1 只看该作者 复制链接
在HelloARVideo里面提供了播放本地StreamingAssets中视频的方法,但是如果视频很多,打包起来会很大,所以这里提供一种将视频放在网上,然后通过网络加载的方法。


  • <div class="blockcode"><blockquote>using UnityEngine;
  • using System.Collections;
  • using System.IO;
  • public class PlayVideo: MonoBehaviour
  • {
  •         public GameObject Target;                  //网络视频地址
  •         private string Url_movie;                     //视频下载本地存储地址
  •         private string Url_save;                       //文件
  •         FileInfo file;
  •         int ForZ;
  •         //不同平台下StreamingAssets的路径是不同的,这里需要注意一下。
  • public static readonly string PathURL =
  • #if UNITY_ANDROID
  •                 "jar:file://" + Application.dataPath + "!/assets/";
  • #elif UNITY_IPHONE
  •                 Application.dataPath + "/Raw/";
  • #elif UNITY_STANDALONE_WIN || UNITY_EDITOR
  •         "file://" + Application.dataPath + "/StreamingAssets/";
  • #else
  •         string.Empty;
  • #endif
  •         void Awake ()
  •         {
  •                 ForZ = 0;
  •                 Url_movie = "http://bmw2.thefront.com.cn/m2_2016/media/final.mp4";
  •                 //Url_movie = "http://bsyqncdn.miaopai.com/stream/jnyEqgHIBvr~XVRWJXbT6g__.mp4";
  •                 //Url_save = Application.persistentDataPath + "/test.mp4";                 //初始化文件
  •                 Url_save = PathURL + "112233.mp4";//初始化文件
  •                 file = new FileInfo (Url_save);
  •         }
  •         void Start ()
  •         {
  •                 if (!file.Exists) {                                 //判断文件是否下载过
  •                         StartCoroutine ("downmovie");
  •                 } else {                                           //文件存在 直接播放视频
  •                         if (Target.activeSelf == true) {
  •                                 print ("文件存在 直接播放视频");
  •                 //        Handheld.PlayFullScreenMovie (Url_save, Color.black, FullScreenMovieControlMode.Full);
  •                 }
  •                 }
  •         }
  •         void Update ()
  •         {
  •                 if (Target.activeSelf == false) {
  •                         ForZ = 0;
  •                 }
  •                 if (Target.activeSelf == true && ForZ == 0) {
  •                         Playermov ();
  •                         ForZ = 1;
  •                 }
  •         }
  •         IEnumerator downmovie ()
  •         {
  •                 //加载www
  •                 WWW _www = new WWW (Url_movie);
  •                 yield return _www;
  •                 if (_www.isDone) {
  •                         print ("视频加载完成");
  •                         //获取www的字节
  •                         byte[] bytes = _www.bytes;
  •                         creat (bytes);
  •                 }
  •         }
  •         //文件的流写入
  •         void creat (byte[] bytes)
  •         {
  •                 Stream str;
  •                 //文件创建
  •                 str = file.Create ();
  •                 //文件写入
  •                 str.Write (bytes, 0, bytes.Length);
  •                 //关闭并销毁流
  •                 str.Close ();
  •                 str.Dispose ();
  •                 //播放视频
  •         //        Playermov ();
  •         }
  •         void Playermov ()
  •         {
  •         print ("xx");
  •                 Handheld.PlayFullScreenMovie (Url_movie, Color.black, FullScreenMovieControlMode.Hidden);
  •         }
  • }



分享至:
| 1 人收藏
回复

使用道具 举报

该用户从未签到

沙发
sunShine 发表于 2016-4-28 10:35:14 只看该作者
你好,这个cs文件要挂到哪个组件上才能正常调用呢?
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2013-2017 ARinChina-增强现实中国技术论坛   All Rights Reserved.