提交 c08ad782 编写于 作者: guofeng.chen's avatar guofeng.chen

修改视频

上级 e20d27c3
...@@ -141,6 +141,7 @@ export default { ...@@ -141,6 +141,7 @@ export default {
this.vid = `video_${this._uid}`; this.vid = `video_${this._uid}`;
const ua = navigator.userAgent; const ua = navigator.userAgent;
this.isWechat = ua.match(/(MicroMessenger)\/([\d.]+)/); this.isWechat = ua.match(/(MicroMessenger)\/([\d.]+)/);
this.isAndroid = ua.match(/(Android);?[\s\/]+([\d.]+)?/);
}, },
mounted() { mounted() {
if (this.isWechat) { if (this.isWechat) {
...@@ -173,14 +174,9 @@ export default { ...@@ -173,14 +174,9 @@ export default {
return; return;
} }
if (isPaused) { if (isPaused) {
this.player.style.display = 'block';
this.player.play(); this.player.play();
if (this.opts.proved > 0) { this.showProved = false;
this.showProved = true;
this.provedTimer && clearTimeout(this.provedTimer);
this.provedTimer = setTimeout(() => {
this.showProved = false;
}, 5000)
}
} else { } else {
this.player.pause(); this.player.pause();
} }
...@@ -205,6 +201,7 @@ export default { ...@@ -205,6 +201,7 @@ export default {
this.opts = opts; this.opts = opts;
this.currentTime = null; this.currentTime = null;
this.duration = null; this.duration = null;
this.showProved = proved > 0;
this.showReplay = false; this.showReplay = false;
if (this.showError) this.showError = false; if (this.showError) this.showError = false;
}, },
...@@ -223,6 +220,7 @@ export default { ...@@ -223,6 +220,7 @@ export default {
} }
const loop = () => { const loop = () => {
if (this.loaded) { if (this.loaded) {
this.player.style.display = 'block';
this.player.play(); this.player.play();
this.isPaused = false; this.isPaused = false;
this.reportOnOff(1); this.reportOnOff(1);
...@@ -237,11 +235,14 @@ export default { ...@@ -237,11 +235,14 @@ export default {
}, },
// 重播 // 重播
onReplay() { onReplay() {
this.player.style.display = 'block';
this.player.currentTime = 0; this.player.currentTime = 0;
this.player.play(); this.player.play();
this.isPaused = false; this.isPaused = false;
this.reportOnOff(1); this.reportOnOff(1);
this.$emit('onReplay') this.$emit('onReplay');
this.showReplay = false;
this.provedOver = false;
}, },
// 加载完毕,获取总时长和音量。问题:移动端点击播放才会触发,且不一定会获取时长 // 加载完毕,获取总时长和音量。问题:移动端点击播放才会触发,且不一定会获取时长
loadedMetaData() { loadedMetaData() {
...@@ -260,10 +261,14 @@ export default { ...@@ -260,10 +261,14 @@ export default {
}, },
// 播放中 // 播放中
onTimeUpdate(e) { onTimeUpdate(e) {
const { currentTime, duration } = e.target;
// 试看,且超过时间
if (this.proved && currentTime >= this.proved) {
this.provedEnd();
}
if (this.provedOver) { if (this.provedOver) {
return return
} }
const { currentTime, duration } = e.target;
if (currentTime) { if (currentTime) {
this.playTime = this.formatTime(currentTime); this.playTime = this.formatTime(currentTime);
} }
...@@ -275,10 +280,6 @@ export default { ...@@ -275,10 +280,6 @@ export default {
if (currentTime < 0.1 && !this.loaded) { if (currentTime < 0.1 && !this.loaded) {
this.loadedMetaData(); this.loadedMetaData();
} }
// 试看,且超过时间
if (this.proved && currentTime >= this.proved) {
this.provedEnd();
}
}, },
// 设置进度条位置 // 设置进度条位置
setBarPosition(percent, target) { setBarPosition(percent, target) {
...@@ -311,6 +312,7 @@ export default { ...@@ -311,6 +312,7 @@ export default {
this.setBarPosition(percent, 'progressBar'); this.setBarPosition(percent, 'progressBar');
this.player.currentTime = percent * duration / 100; this.player.currentTime = percent * duration / 100;
if (this.isPaused) { if (this.isPaused) {
this.player.style.display = 'block';
this.player.play(); this.player.play();
this.isPaused = false; this.isPaused = false;
this.reportOnOff(1); this.reportOnOff(1);
...@@ -360,17 +362,26 @@ export default { ...@@ -360,17 +362,26 @@ export default {
}, },
// 试看结束 // 试看结束
provedEnd() { provedEnd() {
this.provedOver = true;
this.player.pause(); this.player.pause();
this.$emit('onVideoEnd', { type: 2 }); this.player.currentTime = this.proved;
if (this.isAndroid) {
this.player.style.display = 'none';
}
if (!this.provedOver) {
this.$emit('onVideoEnd', { type: 2 });
this.reportOnOff(2);
}
this.finish = true; this.finish = true;
this.showReplay = true; this.showReplay = true;
this.reportOnOff(2); this.provedOver = true;
}, },
// 播放结束 // 播放结束
onEnded() { onEnded() {
this.$emit('onVideoEnd', { type: 1 }); this.$emit('onVideoEnd', { type: 1 });
this.finish = true; this.finish = true;
if (this.isAndroid) {
this.player.style.display = 'none';
}
this.reportOnOff(2); this.reportOnOff(2);
}, },
onError() { onError() {
......
...@@ -32,7 +32,7 @@ const user = { ...@@ -32,7 +32,7 @@ const user = {
Toast('登录失效,请重新登录~') Toast('登录失效,请重新登录~')
} }
const res = await fetch({ const res = await fetch({
url: getBaseUrl('/account/login/web'), url: getBaseUrl('account/login/web'),
method: 'get', method: 'get',
headers: { token: state.token } headers: { token: state.token }
}).catch(() => { }).catch(() => {
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册