本文共 1083 字,大约阅读时间需要 3 分钟。
在做一个Vuforia的Demo,其中关于视频播放一直出问题,因为需要自动播放,然而当前状态下视频处于Playing状态,但没有画面,只有一个Loading加载界面,且声音在播放当中。
而且我在代码中平凡用到了SetActive这个函数,结果一直不工作。 处理办法: 把关于视频播放的Video中的VideoPlaybackBehaviour中的自动播放勾选上, 然后剔除掉所有关于Video的SetActive()方法, 换成禁用MeshRenderer,MeshCollier组件的方式,例如: //停止视频的播放 Video.GetComponent().enabled = false; Video.GetComponent().enabled = false; Video.GetComponent().VideoPlayer.Pause(); Video.transform.GetChild(0).GetComponent().enabled = false; Video.transform.GetChild(0).GetComponent().enabled = false; //开始播放视频 Video.GetComponent().enabled = true; Video.GetComponent().enabled = true; Video.transform.GetChild(0).GetComponent().enabled = true; Video.transform.GetChild(0).GetComponent().enabled = true; if (!Video.GetComponent().enabled) Video.GetComponent().enabled = true; video.VideoPlayer.Play(false,video.VideoPlayer.GetCurrentPosition()); //初始化 Video.SetActive(false);//当切换视频播放的时候,再启用Video.SetActive(true); 错误原因: *SetActive方法是禁用掉了Video的所有组价,导致了PlaybackBehaviour脚本的一些依赖资源被剔除掉, 导致Video重新启用时,视频播放没法得到渲染,因此在交互隐藏视频播放时,最好通过禁用渲染组件的方式使 播放的环境得到保留,而在初次加载时可用SetActive来初始化隐藏状态,这并不影响视频播放的正常逻辑。*转载地址:http://dkuubk.baihongyu.com/