diff --git a/pages/p2p/videoLog.vue b/pages/p2p/videoLog.vue index 9bec776..4cff9e5 100644 --- a/pages/p2p/videoLog.vue +++ b/pages/p2p/videoLog.vue @@ -59,11 +59,9 @@ {{ item.event_type_name }} - 删除 - + class="i-material-symbols:more-horiz text-#999999 size-45 font-bold" + @click="operateEvent(item.event_id)" + > {{ formatTime(item.event_time) }} @@ -72,7 +70,17 @@ {{ item.text }} - + {{ formatRemainingTime(item.video_expire_at) }} @@ -121,6 +129,9 @@ const requestFlag = ref(false) const deviceInfo = ref(null) + const fullscreenVideoId = ref(null) + const isFullscreenChanging = ref(false) + const currentPlayingVideoId = ref(null) onMounted(async () => { deviceInfo.value = await $basic.getDeviceInfo() @@ -135,6 +146,17 @@ } }) + const operateEvent = eventId => { + uni.showActionSheet({ + itemList: ['删除'], + success: ({ tapIndex }) => { + if (tapIndex === 0) { + deleteEvent(eventId) + } + } + }) + } + const toWebview = () => { $basic.routeJump({ name: 'webview', @@ -343,4 +365,59 @@ } return { code, data, message } } + + const playVideoFullscreen = eventId => { + if (fullscreenVideoId.value === eventId) { + return + } + + if (isFullscreenChanging.value) { + return + } + + if (currentPlayingVideoId.value && currentPlayingVideoId.value !== eventId) { + const currentVideoContext = uni.createVideoContext(`video-${currentPlayingVideoId.value}`) + currentVideoContext.pause() + } + + const videoId = `video-${eventId}` + const videoContext = uni.createVideoContext(videoId) + + isFullscreenChanging.value = true + currentPlayingVideoId.value = eventId + videoContext.play() + + setTimeout(() => { + if (fullscreenVideoId.value !== eventId) { + videoContext.requestFullScreen({ + direction: 0 + }) + } + setTimeout(() => { + isFullscreenChanging.value = false + }, 500) + }, 300) + } + + const onFullscreenChange = (eventId, event) => { + if (event.detail.fullScreen) { + fullscreenVideoId.value = eventId + } else { + fullscreenVideoId.value = null + } + } + + const onVideoPlay = eventId => { + if (currentPlayingVideoId.value && currentPlayingVideoId.value !== eventId) { + const currentVideoContext = uni.createVideoContext(`video-${currentPlayingVideoId.value}`) + currentVideoContext.pause() + } + currentPlayingVideoId.value = eventId + } + + const onVideoPause = eventId => { + if (currentPlayingVideoId.value === eventId) { + currentPlayingVideoId.value = null + } + }