[0]Laya3.0.3 的VideoNode不支持在微信浏览器中播放

let videoNode = this.owner.getChildByName("VideoNode") as Laya.VideoNode;
videoNode.source = 'xxx.mp4';
videoNode.play();
// 上面代码在PC端安卓苹果等自带浏览器支持视频播放,但是在微信浏览器无任何显示。
let mat = new Laya.UnlitMaterial();
mat.albedoTexture = videoNode.videoTexture;
this.owner.xxx.getChildByName('Scene3D').getChildByName('Plane').getComponent(Laya.MeshRenderer).sharedMaterial = mat;
// 上面代码在3D场景中播放则无任何问题,包括微信浏览器,出问题的是在2D场景中在微信浏览器不能播放视频
 
// 附件三张图片分别是 Laya编辑器界面 - 微信浏览器 - 华为浏览器,可以看出中间的3D面片可以播放视频,2D UI在微信浏览器中不能播放视频
微信图片_20230825160414.png 微信图片_20230825160614.jpg 微信图片_20230825160609.jpg
已邀请:

layabox

赞同来自:

原本是微信中的BUG,引擎中作了兼容,现微信BUG已修复,导致兼容代码出了问题,现在3.1.2中已删除兼容代码。

Laya_XS

赞同来自: layabox

目前线上版本确实存在上述描述的问题,临时解决方案,可以自行修改下代码,找到引擎laya.core.js文件,修改为(这里只是截取了部分代码):
111.png

备注:我写了一个简单的demo,按上述修改在微信浏览器上测试正常:
var videoTexTure:Laya.VideoTexture = new Laya.VideoTexture();
videoTexTure.source = "https://www.layaair.com/3.x/de ... 3B%3B
videoTexTure.on(Laya.Event.READY,this,()=>{
videoTexTure.play();
var image:Laya.Image = new Laya.Image();
image.texture = new Laya.Texture(videoTexTure);
this.addChild(image);
image.pos(100,100);
});

phhh

赞同来自:

2d播放视频要事件触发

木易楊

赞同来自:

尝试过是否是微信限制需要点击在播放,通过鼠标点击事件执行播放也是不可行的。

木易楊

赞同来自:

再次测试
this.videoNode.play();
视频节点在微信浏览器能播放声音,但是没有视频画面。

木易楊

赞同来自:

如果在微信浏览器不能到达播放视频的效果,只能使用3D面片来播放,但这个问题肯定是要解决的。(希望下个版本能够解决该问题,关于视频节点只有文档中有提到,在官方案例中,没有这些内容案例)
let mat: Laya.BlinnPhongMaterial = (display.meshRenderer.material as Laya.BlinnPhongMaterial);
mat.albedoTexture = this.videoTexture;
display.meshRenderer.sharedMaterial = mat;

1677851971用户

赞同来自:

3.1.1版本目前该问题还存在

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作