提交 5b0989b9 authored 作者: GOD_ZYX's avatar GOD_ZYX

新增 如果视频播放正常结束,直接发送一次请求

上级 fd69498f
No preview for this file type
...@@ -2,4 +2,4 @@ ...@@ -2,4 +2,4 @@
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/console-polyfill.js"></script> <script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/console-polyfill.js"></script>
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/html5shiv.min.js"></script> <script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/html5shiv.min.js"></script>
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/respond.min.js"></script> <script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/respond.min.js"></script>
<![endif]--><script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/manifest.21a0ef13.js"></script><script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/vendor.0ec25a95.js"></script><script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/app.65c18cf3.js"></script></body></html> <![endif]--><script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/manifest.0468080a.js"></script><script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/vendor.0ec25a95.js"></script><script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/app.65c18cf3.js"></script></body></html>
\ No newline at end of file \ No newline at end of file
#player p[data-v-dced0884]{color:#fff;text-align:center;padding:50px 0}#player p a[data-v-dced0884]{color:#b01c40;text-decoration:underline}
\ No newline at end of file
差异被折叠。
#player p[data-v-68bd2f36]{color:#fff;text-align:center;padding:50px 0}#player p a[data-v-68bd2f36]{color:#b01c40;text-decoration:underline}
\ No newline at end of file
差异被折叠。
!function(f){function e(e){for(var t,r,n=e[0],a=e[1],c=e[2],o=0,d=[];o<n.length;o++)r=n[o],s[r]&&d.push(s[r][0]),s[r]=0;for(t in a)Object.prototype.hasOwnProperty.call(a,t)&&(f[t]=a[t]);for(p&&p(e);d.length;)d.shift()();return i.push.apply(i,c||[]),u()}function u(){for(var e,t=0;t<i.length;t++){for(var r=i[t],n=!0,a=1;a<r.length;a++){var c=r[a];0!==s[c]&&(n=!1)}n&&(i.splice(t--,1),e=b(b.s=r[0]))}return e}var r={},l={3:0},s={3:0},i=[];function b(e){if(r[e])return r[e].exports;var t=r[e]={i:e,l:!1,exports:{}};return f[e].call(t.exports,t,t.exports,b),t.l=!0,t.exports}b.e=function(i){var e=[];l[i]?e.push(l[i]):0!==l[i]&&{0:1,5:1,6:1,7:1,8:1,9:1,10:1,11:1,12:1,13:1,14:1,15:1,16:1,17:1,18:1,19:1,20:1,21:1,22:1}[i]&&e.push(l[i]=new Promise(function(e,n){for(var t="resources/"+({}[i]||i)+"."+{0:"7e9c19881242",1:"31d6cfe0d16a",5:"b6a10460f085",6:"39a4b4394a2e",7:"edadd3d1dece",8:"2b76410db4d0",9:"30b36ab56f09",10:"a505bcc1227b",11:"e7ba1de89846",12:"fc688477e0f2",13:"9c95c5430f41",14:"d32639348e7f",15:"ca7cab1d6dca",16:"a6265ac4f731",17:"5ce6ee003c1d",18:"abf993cecc16",19:"da1346fedd49",20:"5ba1b1bc7480",21:"43ee51cf782c",22:"12c536f6abaf",23:"31d6cfe0d16a",24:"31d6cfe0d16a",25:"31d6cfe0d16a",26:"31d6cfe0d16a",27:"31d6cfe0d16a",28:"31d6cfe0d16a",29:"31d6cfe0d16a",30:"31d6cfe0d16a"}[i]+".css",a=b.p+t,r=document.getElementsByTagName("link"),c=0;c<r.length;c++){var o=(f=r[c]).getAttribute("data-href")||f.getAttribute("href");if("stylesheet"===f.rel&&(o===t||o===a))return e()}var d=document.getElementsByTagName("style");for(c=0;c<d.length;c++){var f;if((o=(f=d[c]).getAttribute("data-href"))===t||o===a)return e()}var u=document.createElement("link");u.rel="stylesheet",u.type="text/css",u.onload=e,u.onerror=function(e){var t=e&&e.target&&e.target.src||a,r=new Error("Loading CSS chunk "+i+" failed.\n("+t+")");r.request=t,delete l[i],u.parentNode.removeChild(u),n(r)},u.href=a,document.getElementsByTagName("head")[0].appendChild(u)}).then(function(){l[i]=0}));var t,r=s[i];if(0!==r)if(r)e.push(r[2]);else{var n=new Promise(function(e,t){r=s[i]=[e,t]});e.push(r[2]=n);var a,c=document.getElementsByTagName("head")[0],o=document.createElement("script");o.charset="utf-8",o.timeout=120,b.nc&&o.setAttribute("nonce",b.nc),o.src=b.p+"resources/"+({}[t=i]||t)+"."+{0:"44b419c5",1:"b54a4784",5:"09a1f3ee",6:"79342c91",7:"ace7c55c",8:"87290af0",9:"dcfc2b8a",10:"f2358237",11:"433a0ecc",12:"91c1f686",13:"a61dca92",14:"4d6ef107",15:"f49555ac",16:"b8ee8fbd",17:"543d5fb7",18:"7a2fba65",19:"2f6edafd",20:"102dfcc6",21:"ca6c0db6",22:"51a95842",23:"299197ce",24:"73b8e970",25:"4196dbb5",26:"2e14c205",27:"f7c1dd11",28:"01ab5f90",29:"11f4d30d",30:"400ed014"}[t]+".js",a=function(e){o.onerror=o.onload=null,clearTimeout(d);var t=s[i];if(0!==t){if(t){var r=e&&("load"===e.type?"missing":e.type),n=e&&e.target&&e.target.src,a=new Error("Loading chunk "+i+" failed.\n("+r+": "+n+")");a.type=r,a.request=n,t[1](a)}s[i]=void 0}};var d=setTimeout(function(){a({type:"timeout",target:o})},12e4);o.onerror=o.onload=a,c.appendChild(o)}return Promise.all(e)},b.m=f,b.c=r,b.d=function(e,t,r){b.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},b.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},b.t=function(t,e){if(1&e&&(t=b(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(b.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)b.d(r,n,function(e){return t[e]}.bind(null,n));return r},b.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return b.d(t,"a",t),t},b.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},b.p="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/",b.oe=function(e){throw console.error(e),e};var t=window.webpackJsonp=window.webpackJsonp||[],n=t.push.bind(t);t.push=e,t=t.slice();for(var a=0;a<t.length;a++)e(t[a]);var p=n;u()}([]); !function(f){function e(e){for(var t,r,n=e[0],a=e[1],c=e[2],o=0,d=[];o<n.length;o++)r=n[o],s[r]&&d.push(s[r][0]),s[r]=0;for(t in a)Object.prototype.hasOwnProperty.call(a,t)&&(f[t]=a[t]);for(p&&p(e);d.length;)d.shift()();return i.push.apply(i,c||[]),u()}function u(){for(var e,t=0;t<i.length;t++){for(var r=i[t],n=!0,a=1;a<r.length;a++){var c=r[a];0!==s[c]&&(n=!1)}n&&(i.splice(t--,1),e=b(b.s=r[0]))}return e}var r={},l={3:0},s={3:0},i=[];function b(e){if(r[e])return r[e].exports;var t=r[e]={i:e,l:!1,exports:{}};return f[e].call(t.exports,t,t.exports,b),t.l=!0,t.exports}b.e=function(i){var e=[];l[i]?e.push(l[i]):0!==l[i]&&{0:1,5:1,6:1,7:1,8:1,9:1,10:1,11:1,12:1,13:1,14:1,15:1,16:1,17:1,18:1,19:1,20:1,21:1,22:1}[i]&&e.push(l[i]=new Promise(function(e,n){for(var t="resources/"+({}[i]||i)+"."+{0:"7e9c19881242",1:"31d6cfe0d16a",5:"b6a10460f085",6:"39a4b4394a2e",7:"edadd3d1dece",8:"2b76410db4d0",9:"30b36ab56f09",10:"7275abdd54ff",11:"e7ba1de89846",12:"fc688477e0f2",13:"9c95c5430f41",14:"d32639348e7f",15:"ca7cab1d6dca",16:"a6265ac4f731",17:"5ce6ee003c1d",18:"abf993cecc16",19:"da1346fedd49",20:"5ba1b1bc7480",21:"43ee51cf782c",22:"12c536f6abaf",23:"31d6cfe0d16a",24:"31d6cfe0d16a",25:"31d6cfe0d16a",26:"31d6cfe0d16a",27:"31d6cfe0d16a",28:"31d6cfe0d16a",29:"31d6cfe0d16a",30:"31d6cfe0d16a"}[i]+".css",a=b.p+t,r=document.getElementsByTagName("link"),c=0;c<r.length;c++){var o=(f=r[c]).getAttribute("data-href")||f.getAttribute("href");if("stylesheet"===f.rel&&(o===t||o===a))return e()}var d=document.getElementsByTagName("style");for(c=0;c<d.length;c++){var f;if((o=(f=d[c]).getAttribute("data-href"))===t||o===a)return e()}var u=document.createElement("link");u.rel="stylesheet",u.type="text/css",u.onload=e,u.onerror=function(e){var t=e&&e.target&&e.target.src||a,r=new Error("Loading CSS chunk "+i+" failed.\n("+t+")");r.request=t,delete l[i],u.parentNode.removeChild(u),n(r)},u.href=a,document.getElementsByTagName("head")[0].appendChild(u)}).then(function(){l[i]=0}));var t,r=s[i];if(0!==r)if(r)e.push(r[2]);else{var n=new Promise(function(e,t){r=s[i]=[e,t]});e.push(r[2]=n);var a,c=document.getElementsByTagName("head")[0],o=document.createElement("script");o.charset="utf-8",o.timeout=120,b.nc&&o.setAttribute("nonce",b.nc),o.src=b.p+"resources/"+({}[t=i]||t)+"."+{0:"44b419c5",1:"b54a4784",5:"09a1f3ee",6:"79342c91",7:"ace7c55c",8:"87290af0",9:"dcfc2b8a",10:"a37bbb1e",11:"433a0ecc",12:"91c1f686",13:"a61dca92",14:"4d6ef107",15:"f49555ac",16:"b8ee8fbd",17:"543d5fb7",18:"7a2fba65",19:"2f6edafd",20:"102dfcc6",21:"ca6c0db6",22:"51a95842",23:"299197ce",24:"73b8e970",25:"4196dbb5",26:"2e14c205",27:"f7c1dd11",28:"01ab5f90",29:"11f4d30d",30:"400ed014"}[t]+".js",a=function(e){o.onerror=o.onload=null,clearTimeout(d);var t=s[i];if(0!==t){if(t){var r=e&&("load"===e.type?"missing":e.type),n=e&&e.target&&e.target.src,a=new Error("Loading chunk "+i+" failed.\n("+r+": "+n+")");a.type=r,a.request=n,t[1](a)}s[i]=void 0}};var d=setTimeout(function(){a({type:"timeout",target:o})},12e4);o.onerror=o.onload=a,c.appendChild(o)}return Promise.all(e)},b.m=f,b.c=r,b.d=function(e,t,r){b.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},b.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},b.t=function(t,e){if(1&e&&(t=b(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(b.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)b.d(r,n,function(e){return t[e]}.bind(null,n));return r},b.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return b.d(t,"a",t),t},b.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},b.p="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/",b.oe=function(e){throw console.error(e),e};var t=window.webpackJsonp=window.webpackJsonp||[],n=t.push.bind(t);t.push=e,t=t.slice();for(var a=0;a<t.length;a++)e(t[a]);var p=n;u()}([]);
\ No newline at end of file \ No newline at end of file
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
:videoId="chapterVideo.video_origionalID" :videoId="chapterVideo.video_origionalID"
:videoSrt="(chapterVideo.video_subtitle || '')" :videoSrt="(chapterVideo.video_subtitle || '')"
@handlePlayTime="onVideoTimeChange" @handlePlayTime="onVideoTimeChange"
@handlePlayfinish="onVideoPlayFinish"
:chapterVideo="chapterVideo" :chapterVideo="chapterVideo"
/> />
</div> </div>
...@@ -64,6 +65,9 @@ const PLAY_SPACE_HEIGHT = 10 ...@@ -64,6 +65,9 @@ const PLAY_SPACE_HEIGHT = 10
const VIDEO_DEFAULT_WIDTH = 550 const VIDEO_DEFAULT_WIDTH = 550
const VIDEO_DEFAULT_HEIGHT = 360 const VIDEO_DEFAULT_HEIGHT = 360
/* 视频 定时 心跳记录器 默认时间 ms */
const HEART_TIME = 10000
export default { export default {
components: { eVideo, ePpt }, components: { eVideo, ePpt },
props: { props: {
...@@ -89,6 +93,7 @@ export default { ...@@ -89,6 +93,7 @@ export default {
lastTime: null, lastTime: null,
speed: 1, // 默认播放速度 speed: 1, // 默认播放速度
isSeek: false, // 是否拖动进度条 isSeek: false, // 是否拖动进度条
isFinish: false, // 是否播放完成
queueFrames: [], // 存放所有视频帧的栈,上传成功清空一次。 queueFrames: [], // 存放所有视频帧的栈,上传成功清空一次。
videoWidth: VIDEO_DEFAULT_WIDTH, videoWidth: VIDEO_DEFAULT_WIDTH,
videoHeight: VIDEO_DEFAULT_HEIGHT, videoHeight: VIDEO_DEFAULT_HEIGHT,
...@@ -118,13 +123,13 @@ export default { ...@@ -118,13 +123,13 @@ export default {
/* 窗口resize,重置大小 */ /* 窗口resize,重置大小 */
window.addEventListener('resize', this.resizeVideo) window.addEventListener('resize', this.resizeVideo)
/* 增加 心跳 记录 视频学习时间 */ /* 增加 心跳 记录 视频学习时间 */
this.createHeartTime() this.createHeartTime(HEART_TIME)
}, },
destroyed () { destroyed () {
window.removeEventListener('resize', this.resizeVideo) window.removeEventListener('resize', this.resizeVideo)
this.destroyHeartTime() this.destroyHeartTime()
/* 在定时器 被销毁时,再次执行 定时器,防止 最后几秒没有 被统计上 */ /* 在定时器 被销毁时,再次执行 定时器,解决:播放过程中,突然退出当前页(非关闭) */
this.hearBeatFunc(10000) this.hearBeatFunc(HEART_TIME)
}, },
watch: { watch: {
id: { id: {
...@@ -187,6 +192,16 @@ export default { ...@@ -187,6 +192,16 @@ export default {
this.$emit('handlePlayTime', time) // 调用 父级方法,改变 sidebar ppt 对应 位置 this.$emit('handlePlayTime', time) // 调用 父级方法,改变 sidebar ppt 对应 位置
}, },
// 视频播放结束,解决播放结束,但是没有等够 HEART_TIME 时间 就直接 关闭浏览器问题
onVideoPlayFinish (data) {
/* 视频播放完毕触发,然后判断 pt 累加时间 基本等于 视频观看时间时,才认为真正播放完成 */
if (this._rProgress && this._rProgress.id) {
if (this._rProgress.pt + ((HEART_TIME / 1000) * this.videoFlash.speed) >= data.time) {
this.isPlaying = true // 这里 再设置一次 true ,只有为 true时 才能上传 进度
this.hearBeatFunc(HEART_TIME)
}
}
},
/** /**
* 根据时间设置ppt位置 - PPT 样式 控制 * 根据时间设置ppt位置 - PPT 样式 控制
*/ */
......
...@@ -68,6 +68,10 @@ export default { ...@@ -68,6 +68,10 @@ export default {
window._playerSeek = function () { window._playerSeek = function () {
$('#' + PLAYER_WRAP_ID).trigger('player.seek', { time: that.getPlayer().callAction('getCurrentTime'), quality: that.getPlayer().callAction('getQuality'), isSeek: true }) $('#' + PLAYER_WRAP_ID).trigger('player.seek', { time: that.getPlayer().callAction('getCurrentTime'), quality: that.getPlayer().callAction('getQuality'), isSeek: true })
} }
// 视频播放结束
window._playerFinish = function () {
that.$emit('handlePlayfinish', { time: that.getPlayer().callAction('getDuration') })
}
// 播放控件 - 初始化完成时,注册播放事件 // 播放控件 - 初始化完成时,注册播放事件
window._playerCallback = function () { window._playerCallback = function () {
let player = that.getPlayer() let player = that.getPlayer()
...@@ -78,7 +82,7 @@ export default { ...@@ -78,7 +82,7 @@ export default {
// player.register('onPause', '') // 暂停 // player.register('onPause', '') // 暂停
// player.register('onResume', '') // 恢复播放 // player.register('onResume', '') // 恢复播放
player.callAction('register', 'onSeekComplete', '_playerSeek') // 拖动进度条 player.callAction('register', 'onSeekComplete', '_playerSeek') // 拖动进度条
// player.register('onEnded', '') // 结束 player.callAction('register', 'onEnded', '_playerFinish') // 结束
} }
} }
}, },
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论