diff --git a/pagesInn/inn/innHome.vue b/pagesInn/inn/innHome.vue index 1fea1e6..9010c98 100644 --- a/pagesInn/inn/innHome.vue +++ b/pagesInn/inn/innHome.vue @@ -31,6 +31,7 @@ :autoplay="true" :controls="true" :loop="false" + id="coverVideo" object-fit="contain" play-btn-position="center" class="video" @@ -232,8 +233,8 @@ controls play-btn-position="center" class="video-item" - :autoplay="inn.coverType !== 2" - @play="infoItemViewClick(item)" + :id="'video-item' + index" + @play="infoItemViewClick(item, index)" /> @@ -666,7 +667,26 @@ export default { infoClick: function (info) { // this.$yrouter.push('/pagesInn/inn/innInfoDetail?id=' + info.id) }, - infoItemViewClick(item) { + infoItemViewClick(item, index) { + if(item.type === 'NT_VIDEO') { + const coverCtx = uni.createVideoContext('coverVideo', this) + coverCtx.pause() + const playerId = 'video-item' + index + if(this.videoPlayers.includes(playerId)) { + this.videoPlayers.forEach(player => { + if(player === playerId) return + const playerCtx = uni.createVideoContext(player, this) + playerCtx.pause() + }) + } { + this.videoPlayers.push(playerId) + this.videoPlayers.forEach(player => { + if(player === playerId) return + const playerCtx = uni.createVideoContext(player, this) + playerCtx.pause() + }) + } + } uni.$u.debounce(() => { hotelNewsView({ id: item.id }).finally(() => { this.infoArray.map(info => {