1. 程式人生 > >【EasyAR學習】播放本地視訊

【EasyAR學習】播放本地視訊

Step1:環境搭建

1、新建unity專案,將unitypackage包匯入到unity3D中,會在Project面板看到如下圖所示的資料夾.


2、刪除Main Camera,並將AR相機-------EasyAR_ImageTracker-1拖入到Hierarchy面板中,並在EasyAR_ImageTracker-1的Insepctor面板填寫Key 值(將之前在官網建立的Key複製到這裡)。


3、然後,將ImageTarget預製體拖入到Hierarchy面板中去,並重命名為"Local_Play"。


Step2:本地視訊播放

4、修改 ImageTarget 上掛載的ImageTargetBehaviour.cs 指令碼,這裡我直接將掛載的ImageTargetBehaviour.cs指令碼刪除了,然後在Assets資料夾下新建了“showvideo→Scripts→SampleImageTargetBehaviour.cs”指令碼,該指令碼繼承於ImageTargetBehaviour,雙擊開啟後,填寫如下程式碼(也可從官網http://www.easyar.cn/doc_sdk/cn/Getting-Started/Setting-up-EasyAR-Unity-SDK.html獲得),此指令碼的作用就是控制模型識別後的顯示(與顯示模型時的處理方法相同),在VS2010編譯執行成功後,將SampleImageTargetBehaviour.cs掛載到ImageTarget上。

using UnityEngine;
using EasyAR;

public class SampleImageTargetBehaviour :ImageTargetBehaviour {

        protected override void Awake()
        {
            base.Awake();
            TargetFound += OnTargetFound;
            TargetLost += OnTargetLost;
            TargetLoad += OnTargetLoad;
            TargetUnload += OnTargetUnload;
        }

        void OnTargetFound(TargetAbstractBehaviour behaviour)
        {
            Debug.Log("Found: " + Target.Id);
        }

        void OnTargetLost(TargetAbstractBehaviour behaviour)
        {
            Debug.Log("Lost: " + Target.Id);
        }

        void OnTargetLoad(ImageTargetBaseBehaviour behaviour, ImageTrackerBaseBehaviour tracker, bool status)
        {
            Debug.Log("Load target (" + status + "): " + Target.Id + " (" + Target.Name + ") " + " -> " + tracker);
        }

        void OnTargetUnload(ImageTargetBaseBehaviour behaviour, ImageTrackerBaseBehaviour tracker, bool status)
        {
            Debug.Log("Unload target (" + status + "): " + Target.Id + " (" + Target.Name + ") " + " -> " + tracker);
        }
}

 5、在Inspector面板填寫ImageTarget資訊:(注意,一定要將Storage的格式修改為Assets)

Path: 識別圖的路徑

Name:識別圖的名字

Size:識別圖的大小

 

下面是識別圖片namecard.jpg(圖片路徑我是放在Assets\showvideo\Textures\namecard.jpg)


6、新建個材質球,將識別圖namecard作為貼圖放入材質球,將材質球放入如下圖地方.

                  


7、然後在ImageTarget下新建一個 3D Object ->Plane ,Plane的大小決定了你的視訊大小,所以要適當調整Plane大小。然後是把EasyAR-> Scripts->VideoPlayerBehaviour這個指令碼賦給Plane,進入Plane的inspector檢視,填寫VideoPlayerBehaviour的資訊。


部分引數說明:

(1)path :本地視訊路徑:檔名.mp4 格式

(2)Type:視訊格式


(3)Video Scale Mode:視訊縮放格式:設定為充滿


(4)Video Scale Plane:定義在哪個平面進行縮放


(5)Video Scale Factor Base:縮放因子:建議設定為0.1

(6)Storage :儲存載入方式,要選為Aseets。

 

視訊播放必須移植到移動端,easyAR目前不支援視訊播放在PC和MAC的直接除錯。

8、儲存場景,並打包成apk執行。(不知道如何打包成apk的,請參考我的前一篇部落格“【EasyAR學習】縮放和拖動模型”)

9、在手機上執行時,發現播放video.mp4,只有聲音,沒有顯示畫面,目前我還在尋找解決這個問題的辦法。