提交 0f7cc680 authored 作者: 王鹏飞's avatar 王鹏飞

chore: 视频第一次播放禁用向后拖拽

上级 f0c0a17a
...@@ -4,9 +4,11 @@ ...@@ -4,9 +4,11 @@
<div class="player-column" v-show="videoVisible"> <div class="player-column" v-show="videoVisible">
<!-- 视频 --> <!-- 视频 -->
<video-player <video-player
disabled
:isSkip="isSkip" :isSkip="isSkip"
:skipTime="skipTime" :skipTime="skipTime"
:video="chatperResources.video" :video="chatperResources.video"
:mpt="progress.mpt"
@timeupdate="onTimeupdate" @timeupdate="onTimeupdate"
@ready="onReady" @ready="onReady"
ref="videoPlayer" ref="videoPlayer"
...@@ -218,7 +220,7 @@ export default { ...@@ -218,7 +220,7 @@ export default {
device_id: Cookies.get('_idt') device_id: Cookies.get('_idt')
}) })
.then(response => { .then(response => {
this.progress = response this.progress = Object.assign(response, { mpt: window.parseInt(response.mpt) })
// 跳转播放进度 // 跳转播放进度
if (this.player && response.cpt) { if (this.player && response.cpt) {
this.player.seek(response.cpt) this.player.seek(response.cpt)
......
...@@ -9,12 +9,22 @@ export default { ...@@ -9,12 +9,22 @@ export default {
isSkip: Boolean, isSkip: Boolean,
video: Object, video: Object,
autoplay: { type: Boolean, default: true }, autoplay: { type: Boolean, default: true },
disabled: { type: Boolean, default: false } disabled: { type: Boolean, default: false },
mpt: { type: Number, default: 0 } // 最大观看时间点
}, },
data() { data() {
let videoRetry = parseInt(window.localStorage.getItem('videoRetry')) let videoRetry = parseInt(window.localStorage.getItem('videoRetry'))
videoRetry = isNaN(videoRetry) ? 3 : videoRetry videoRetry = isNaN(videoRetry) ? 3 : videoRetry
return { player: null, videoRetry } return { player: null, videoRetry, currentTime: 0, duration: 0 }
},
watch: {
mpt: {
immediate: true,
handler() {
const left = (Math.max(this.mpt, this.currentTime) / this.duration) * 100
$('.prism-progress-copy').css('left', left + '%')
}
}
}, },
methods: { methods: {
createPlayer() { createPlayer() {
...@@ -43,26 +53,34 @@ export default { ...@@ -43,26 +53,34 @@ export default {
useHlsPluginForSafari: true, useHlsPluginForSafari: true,
language: this.$i18n.locale === 'zh-CN' ? 'zh-cn' : 'en-us' language: this.$i18n.locale === 'zh-CN' ? 'zh-cn' : 'en-us'
}, },
function (player) { function(player) {
// 禁止调整进度,隐藏声音和倍数 // 禁止调整进度,隐藏声音和倍数
if (_this.disabled) { if (_this.disabled) {
$('.prism-volume, .prism-setting-speed').hide() // $('.prism-volume, .prism-setting-speed').hide()
$('.prism-progress').css('pointer-events', 'none') // $('.prism-progress').css('pointer-events', 'none')
$('.prism-controlbar').append('<div class="prism-progress-copy"></div>')
$('.prism-progress-copy').on('click', e => {
return false
})
} }
player.on('playing', function() {
_this.duration = player.getDuration()
})
player.on('ready', function () { player.on('ready', function() {
// 跳过片头 // 跳过片头
_this.isSkip && player.seek(6) _this.isSkip && player.seek(6)
_this.$emit('ready', player) _this.$emit('ready', player)
}) })
player.on('timeupdate', function (event) { player.on('timeupdate', function(event) {
const currentTime = player.getCurrentTime() const currentTime = player.getCurrentTime()
_this.currentTime = currentTime
_this.$emit('timeupdate', currentTime) _this.$emit('timeupdate', currentTime)
if (currentTime > 1) { if (currentTime > 1) {
window.localStorage.setItem('videoRetry', 3) window.localStorage.setItem('videoRetry', 3)
} }
}) })
player.on('error', function (event) { player.on('error', function(event) {
_this.$emit('error', event) _this.$emit('error', event)
if (_this.videoRetry) { if (_this.videoRetry) {
window.localStorage.setItem('videoRetry', _this.videoRetry - 1) window.localStorage.setItem('videoRetry', _this.videoRetry - 1)
...@@ -88,4 +106,13 @@ export default { ...@@ -88,4 +106,13 @@ export default {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
::v-deep .prism-progress-copy {
position: absolute;
height: 18px;
top: -5px;
left: 0;
right: 0;
z-index: 10;
// pointer-events: none;
}
</style> </style>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论