视频在微信6.5.17 for ios 上卡顿严重

视频在微信6.5.17 for ios 上卡顿严重。
经检查运行时的html代码,video标签的视频源默认是video的属性。
经反复测试对比,video需修改格式为:
<video controls="" data-video="0" playsinline="" x-webkit-airplay="" webkit-playsinline="" preload="auto" x5-playsinline="" style="width: 100%; height: 100%; position: absolute;"> <source src="59e84f5692b57940973f037b.mp4" type="video/mp4"> <source src="59e84f5692b57940973f037b.webm" type="video/webm"> <source src="59e84f5692b57940973f037b.ogv" type="video/ogv"> </video>
 由于增加了webm和ogv格式的视频,所以木疙瘩要不就提供视频格式的自动转换,要不就在视频属性上允许绑定多个视频源



修改木疙瘩的渲染脚本:
mugeda_smart_renderer_0.10.78.js做一下修改:

原始代码
Th.im = function() {
function a() {
if (0 < d.currentTime) {
d.removeEventListener("timeupdate", a);
var e = window.backgroundMusic;
c.Vm && e && (e.prevPlayStatus = void 0 === e.playStatus ? 1 : e.playStatus, e.pause(), e.playStatus = 0);
b.cm && (c.F(new z("videostart")), b.cm = !1, d.canvas && (d.canvas.style.display = "block"))
}
}
var b = this,
c = b.c,
d = document.createElement("video");
c.gs && d.setAttribute("controls", "");
d.setAttribute("src", c.Is);
d.setAttribute("playsinline", "");
d.setAttribute("x-webkit-airplay", "");
d.setAttribute("webkit-playsinline", "");
d.setAttribute("preload", "auto");
d.style.cssText = "width:100%;height:100%;position:absolute;";
if (c.ri) {
d.setAttribute("x5-video-player-type", "h5");
d.setAttribute("x5-video-player-fullscreen", "false");
d.style.cssText += "z-index: -10; visibility: hidden;";
var e = document.createElement("canvas"),
f = c.na * K.devicePixelRatio,
g = c.la * K.devicePixelRatio,
h = Math.min(1, Math.sqrt(665600 / f / g));
e.width = Math.floor(f * h);
e.height = Math.floor(g * h);
e.na = c.na;
e.la = c.la;
e.style.cssText = "position: absolute; width: 100%; height: 100%; background: black; display: none;";
d.canvas = e;
d.Vz = e.getContext("2d");
c.F(c.ea)
} else c.vr || d.setAttribute("x5-playsinline", "");
d.addEventListener("pause",
function() {
b.hd = !1;
var e = window.backgroundMusic;
c.Vm && e && 1 == e.prevPlayStatus && (e.play(), e.playStatus = 1, delete e.prevPlayStatus);
d.addEventListener("timeupdate", a)
});
d.addEventListener("ended",
function() {
window.webkitMediaStream && (this.srcObject = new window.webkitMediaStream, this.srcObject = null);
b.vn()
});
d.addEventListener("timeupdate", a);
c.ri ? (Tf.ya(c.cc().l).O().appendChild(d), b.O().appendChild(e)) : c.vr ? (document.body.appendChild(d), b.ds(d), b.uq = function() {
b.ds(d)
},
c.M("rendered", b.uq)) : b.O().appendChild(d);
b.cm = !0;
b.De = d;
b.Ni()
};
修改后的代码:
Th.im = function() {
function a() {
if (0 < d.currentTime) {
d.removeEventListener("timeupdate", a);
var e = window.backgroundMusic;
c.Vm && e && (e.prevPlayStatus = void 0 === e.playStatus ? 1 : e.playStatus, e.pause(), e.playStatus = 0);
b.cm && (c.F(new z("videostart")), b.cm = !1, d.canvas && (d.canvas.style.display = "block"))
}
}
var b = this,
c = b.c,
d = document.createElement("video");
c.gs && d.setAttribute("controls", "");

d.setAttribute("data-video","0");
var srcEle= document.createElement("source");
srcEle.setAttribute("src",c.Is);
srcEle.setAttribute("type","video/mp4");
d.appendChild(srcEle);
var ls=["webm","ogv"];
for(var key in ls){
var node= document.createElement("source");
node.setAttribute("src",c.Is.replace(".mp4","."+ls[key]));
node.setAttribute("type","video/"+ls[key]);
d.appendChild(node);
}
//<source src="../videos/big_buck_bunny.mp4" type="video/mp4">

//d.setAttribute("src", c.Is);
d.setAttribute("playsinline", "");
d.setAttribute("x-webkit-airplay", "");
d.setAttribute("webkit-playsinline", "");
d.setAttribute("preload", "auto");
d.style.cssText = "width:100%;height:100%;position:absolute;";
if (c.ri) {
d.setAttribute("x5-video-player-type", "h5");
d.setAttribute("x5-video-player-fullscreen", "false");
d.style.cssText += "z-index: -10; visibility: hidden;";
var e = document.createElement("canvas"),
f = c.na * K.devicePixelRatio,
g = c.la * K.devicePixelRatio,
h = Math.min(1, Math.sqrt(665600 / f / g));
e.width = Math.floor(f * h);
e.height = Math.floor(g * h);
e.na = c.na;
e.la = c.la;
e.style.cssText = "position: absolute; width: 100%; height: 100%; background: black; display: none;";
d.canvas = e;
d.Vz = e.getContext("2d");
c.F(c.ea)
} else c.vr || d.setAttribute("x5-playsinline", "");
d.addEventListener("pause",
function() {
b.hd = !1;
var e = window.backgroundMusic;
c.Vm && e && 1 == e.prevPlayStatus && (e.play(), e.playStatus = 1, delete e.prevPlayStatus);
d.addEventListener("timeupdate", a)
});
d.addEventListener("ended",
function() {
window.webkitMediaStream && (this.srcObject = new window.webkitMediaStream, this.srcObject = null);
b.vn()
});
d.addEventListener("timeupdate", a);
c.ri ? (Tf.ya(c.cc().l).O().appendChild(d), b.O().appendChild(e)) : c.vr ? (document.body.appendChild(d), b.ds(d), b.uq = function() {
b.ds(d)
},
c.M("rendered", b.uq)) : b.O().appendChild(d);
b.cm = !0;
b.De = d;
b.Ni()
};

 


 
已邀请:

要回复问题请先登录注册