|
|
@@ -4108,9 +4108,20 @@ const addOp3 = async (userTime: any, loadTime: any, object: any, status: any) =>
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+// 视频互斥播放:任意 video 触发 play 时,暂停页面上其他所有 video
|
|
|
+const handleVideoPlay = (e: Event) => {
|
|
|
+ const target = e.target as HTMLVideoElement
|
|
|
+ if (!(target instanceof HTMLVideoElement)) return
|
|
|
+ document.querySelectorAll('video').forEach(v => {
|
|
|
+ if (v !== target && !v.paused) v.pause()
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
onMounted(() => {
|
|
|
|
|
|
document.addEventListener('keydown', handleKeydown)
|
|
|
+ // capture 阶段监听,覆盖原生控件/脚本调用等所有触发路径
|
|
|
+ document.addEventListener('play', handleVideoPlay, true)
|
|
|
|
|
|
// 处理URL参数
|
|
|
if (props.courseid || props.type) {
|
|
|
@@ -4252,6 +4263,7 @@ onMounted(() => {
|
|
|
|
|
|
onUnmounted(() => {
|
|
|
document.removeEventListener('keydown', handleKeydown)
|
|
|
+ document.removeEventListener('play', handleVideoPlay, true)
|
|
|
window.removeEventListener('resize', calculateScale)
|
|
|
document.removeEventListener('fullscreenchange', handleFullscreenChange)
|
|
|
|