这里会用到:videoplayer插件完全解析
解决安卓微信、QQ全景视频播放的视频插件,替换即可。
下载第三方插件的文件 :myvideoplayer.js
/**
* @return {[type]} [description]
*/
var krpanoplugin = function() {
function R(a) {
return "boolean" == typeof a ? a : 0 <= "yesontrue1".indexOf(String(a).toLowerCase())
}
function d(a, b, d, r, f) {
3 == a || 4 == a || 5 == a ? c[b] = d : c.registerattribute(b, d, r, f);
I.push(b)
}
function l(a, c, b, d) {
a.addEventListener(c, b, d);
J.push({
obj: a,
eventname: c,
callback: b,
capture: d
})
}
function D(a) {
var c, b = J.length,
d;
for (c = 0; c < b; c++) if (d = J[c], null == a || d.obj === a) d.obj.removeEventListener(d.eventname, d.callback, d.capture), J.splice(c, 1), c--, b--
}
function la() {
function a(a) {
p = !0;
0 < n && (q.seek(n), n = -1)
}
function d(a) {
f && e && (S(e.src + " - loading failed"), e = null)
}
function g(a) {
0 == x && (y(), q.paused = u = !0, E(null), 0 == c.iscomplete && (c.iscomplete = !0, h.call(c.onvideocomplete, c)))
}
function r() {
if (f && b && !(2 > b.readyState)) {
var a = h.timertick,
d = 0,
v = Number(b.duration);
isNaN(v) || 0 >= v || (e ? (u && !e.paused ? e.pause() : !u && e.paused && e.play(), d = e.currentTime) : u ? d = w : (0 == z && (z = a), d = w + F * Math.max(0, (a - z) / 1E3)), d >= v - .02 ? (d = v, x ? (w = 0, z = a + .1, e && (e.currentTime = 0)) : (y(), q.paused = u = !0, E(null), 0 == c.iscomplete && (c.iscomplete = !0, h.call(c.onvideocomplete, c)))) : c.iscomplete = !1, A = d, .01 < Math.abs(b.currentTime - A) && (b.currentTime = Number(A.toFixed(2))), b.autoplay = !0)
}
}
var q = this,
u = q.paused = !0,
m = null,
e = null,
k = null,
p = !1,
n = -1,
z = 0,
w = 0;
(function() {
if (!0 !== window.krpanoHideiPhoneMediaControlsStyle) {
window.krpanoHideiPhoneMediaControlsStyle = !0;
var a = document.createElement("style");
a.type = "text/css";
a.innerHTML = "*::-webkit-media-controls-panel{display: none!important;-webkit-appearance:none;} *::--webkit-media-controls-play-button{display: none!important;-webkit-appearance:none;} *::-webkit-media-controls-start-playback-button{display: none!important;-webkit-appearance:none;}";
document.getElementsByTagName("head")[0].appendChild(a)
}
})();
q.start = function() {
c.iPhoneMode = !0;
b.autoplay = !0;
b.pause();
b.style.webkitMediaControls = !1;
var f = X(c.videourl, ["m4a", "mp3"]),
f = h.parsePath(f);
n = -1;
f ? (null == e && (k ? (e = k, k = null) : e = document.createElement("audio")), D(e), l(e, "canplay", a, !0), l(e, "error", d, !0), l(e, "ended", g, !0), e.loop = x, p = e.autoplay = !1, e.src = f, e.load(), e.pause()) : e && (e.src && (e.pause(), k = e), e = null);
z = w = 0;
u = c.pausedonstart;
q.paused = u;
m = setInterval(r, 1E3 / 60);
b.currentTime = 0
};
q.play_audio = function() {
e && e.play()
};
q.play = function() {
1 == u && (u = q.paused = !1, c.iscomplete ? (c.iscomplete = !1, w = 0, e && (e.currentTime = 0)) : w = b.currentTime, z = h.timertick + .1, e && e.play(), E(null))
};
q.pause = function() {
0 == u && (e && e.pause(), w = b.currentTime, u = q.paused = !0, E(null))
};
q.seek = function(a) {
e ? p ? (e.currentTime = a, n = -1) : n = a : (n = -1, z = 0, w = a)
};
q.remove = function() {
m && (clearInterval(m), m = null);
e && (e.src && (e.pause(), k = e), e = null)
};
q.setplaybackrate = function(a) {
if (e) try {
e.playbackRate = a
} catch (c) {}
};
q.setloop = function(a) {
e && (e.loop = a)
};
q.need_touchstart_play = function() {
return null != e && e.paused
};
q.try_touchstart_play = function() {
return e ? (e.play(), 0 == e.paused) : !0
}
}
function S(a) {
var b = c ? c.onerror