EasyAR手动控制视频的Open和Close问题

0 投票
最新提问 9月 8, 2017 用户: WuGang (240 分)

image使用Unity开发,动态加载一个识别对象,手动控制视频的Open和Close,但是使用过程中出现一个问题,TargetFound时,没有触发OnVideoReady事件,所以就无法播放视频。具体代码如下:


        public void LoadVideo()
        {
            GameObject subGameObject = Instantiate(Resources.Load("TransparentVideo", typeof(GameObject))) as GameObject;
            subGameObject.transform.parent = this.transform;
            subGameObject.transform.localPosition = new Vector3(0, 0.1f, 0);
            subGameObject.transform.localRotation = new Quaternion();
            subGameObject.transform.localScale = new Vector3(0.5f, 0.2f, 0.3154205f);

            videoPlayer = subGameObject.GetComponent<VideoPlayerBaseBehaviour>();
            if (videoPlayer)
            {
                videoPlayer.Storage = StorageType.Assets;
                videoPlayer.Path = video;
                videoPlayer.EnableAutoPlay = false;
                videoPlayer.OpenWhenStart = false;
                videoPlayer.EnableLoop = true;
                videoPlayer.Type = VideoPlayerBaseBehaviour.VideoType.TransparentSideBySide;
                videoPlayer.VideoReadyEvent += videoReayEvent;
            }
        }


        void OnVideoReady(object sender, System.EventArgs e)
        {
            Debug.Log("Load video success");
            VideoPlayerBaseBehaviour player = sender as VideoPlayerBaseBehaviour;
            loaded = true;
            if (player && found)
                player.Play();
        }

        void OnTargetFound(TargetAbstractBehaviour behaviour)
        {
            found = true;
            if (videoPlayer && loaded)
            {
                videoPlayer.Open();
                videoPlayer.Play();
            }
            Debug.Log("Found: " + Target.Id);
        }

        void OnTargetLost(TargetAbstractBehaviour behaviour)
        {
            found = false;
            if (videoPlayer && loaded)
            {
                videoPlayer.Stop();
                videoPlayer.Close();
            }
            Debug.Log("Lost: " + Target.Id);
        }

这个是我用ImageTarget_DynamicLoad_ManualPlay脚本中的代码修改后的主要代码,其他脚本没有改动,不知道是什么原因?

1个回答

0 投票
最新回答 10月 19, 2017 用户: samtae (420 分)
你并没有外界(eg:button)调用关于open或close的方法。

你可以在这个类中重写个方法,将open与close分别封装到方法中,然后button绑定该事件。

更多关于VideoPlayer方法的细节,可以查阅:http://www.easyar.cn/doc/EasyAR%20SDK/Unity%20Plugin%20Reference/1.0/VideoPlayerBaseBehaviour.html?highlight=videoplayer
欢迎来到 EasyAR Q&A ,有什么不懂的可以尽管在这里提问,你将会收到社区其他成员的回答。
...