Vuforia PlayBack视频自动播放(声音播放中,但显示等待,没有渲染视频)

在使用Vuforia开发Demo时,遇到视频自动播放问题,视频显示为加载状态而无画面,但声音正常。解决方案是取消Video的SetActive操作,改为禁用MeshRenderer和MeshCollider组件。通过设置VideoPlaybackBehaviour的自动播放并控制组件的enabled属性实现视频的暂停与播放。错误地使用SetActive会导致Video的依赖资源丢失,影响渲染。建议在交互中使用禁用渲染组件保持播放环境,仅在初始化时使用SetActive隐藏视频。
摘要由CSDN通过智能技术生成

在做一个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.G

Vuforia控制视频播放的虚拟按钮编码,可以按照以下步骤进行: 1. 创建一个Image Target并导入一段视频素材。 2. 在Unity创建一个新场景,然后将Image Target添加到场景。 3. 在场景创建一个3D模型,并将其添加到Image Target上。 4. 创建一个UI Canvas,然后在Canvas创建一个Button。 5. 将Button拖动到场景的3D模型上,然后调整Button的位置和大小,使其覆盖在3D模型上。 6. 在Button组件添加一个OnClick事件,然后将要播放视频素材拖动到事件。 7. 在代码,使用Vuforia的TrackableBehaviour组件来检测Image Target是否被识别,并在识别时启动视频播放。 示例代码: ```csharp using UnityEngine; using Vuforia; public class VideoController : MonoBehaviour, ITrackableEventHandler { private TrackableBehaviour mTrackableBehaviour; private bool mIsTracking; public GameObject videoPlayer; void Start () { mTrackableBehaviour = GetComponent<TrackableBehaviour>(); if (mTrackableBehaviour) { mTrackableBehaviour.RegisterTrackableEventHandler(this); } } public void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { if (newStatus == TrackableBehaviour.Status.DETECTED || newStatus == TrackableBehaviour.Status.TRACKED || newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED) { mIsTracking = true; videoPlayer.SetActive(true); } else { mIsTracking = false; videoPlayer.SetActive(false); } } void Update () { if (mIsTracking) { // do something when the image target is being tracked } } } ``` 在上述代码,当Image Target被识别时,videoPlayer对象将被激活,从而开始播放视频。可以根据需要修改代码,将其与自己的应用程序集成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值