<template> <div class="screen-share-action-container"> <video v-if="session" class="video" ref="screenShareVideo" style="width: 100%; height: 100%; position: absolute; left: 0; top: 0; z-index: 0; display:none" :srcObject.prop="session.screenShareStream" playsInline muted autoPlay/> <div class="action"> <img v-if="session && !session.audioMuted" @click="audioMute" class="action-img" src='@/assets/images/av_mute.png'/> <img v-else @click="audioMute" class="action-img" src='@/assets/images/av_mute_hover.png'/> <p>{{ session && session.audioMuted ? '鍙栨秷闈欓煶' : '闈欓煶' }}</p> </div> <div class="action" v-if="false"> <img @click="videoMute" class="action-img" src='@/assets/images/av_video_answer.png'/> <p>寮€鍚棰�</p> </div> <div class="action"> <img @click="stopScreenShare" class="action-img" src='@/assets/images/av_video_answer.png'/> <p>缁撴潫鍏变韩</p> </div> </div> </template> <script> import avenginekit from "../../wfc/av/internal/engine.min"; import AvEngineKitProxy from "../../wfc/av/engine/avenginekitproxy"; export default { name: "ScreenShareControlView", props: { type: { required: false, type: String, default: null, }, }, data() { return { session: null, screenShareCheckIntervalId: 0, screenShareActiveTime: -1, isScreenSharePaused: false, } }, mounted() { this.session = avenginekit.getCurrentSession(); this.screenShareCheckIntervalId = setInterval(() => { if (this.screenShareActiveTime !== -1) { if (this.screenShareActiveTime === this.$refs.screenShareVideo.currentTime) { if (!this.isScreenSharePaused) { this.isScreenSharePaused = true; console.log('灞忓箷鍏变韩鏆傚仠'); } } else { if (this.isScreenSharePaused) { this.isScreenSharePaused = false; console.log('灞忓箷鍏变韩鎭㈠'); } } } this.screenShareActiveTime = this.$refs.screenShareVideo.currentTime; }, 1000) }, beforeDestroy() { clearInterval(this.screenShareCheckIntervalId); }, methods: { audioMute() { this.session.muteAudio(!this.session.audioMuted); }, videoMute() { // this.stopScreenShare(); // this.session.muteVideo(false); // this.$parent.$forceUpdate(); this.$parent.test(); }, stopScreenShare() { console.log('stopScreenShare', this.session); this.session.stopScreenShare(); console.log('stopScreenShare', this.session.videoMuted, this.session.audioMuted); if (this.session.videoMuted && this.session.audioMuted) { this.session.switchAudience(true); } AvEngineKitProxy.emitToMain('stop-screen-share', {type: this.type}) // 涓嶅お鏄庣櫧session鏄庢樉鍙樺姩浜嗭紝浣嗙埗缁勪欢娌℃湁鍘诲埛鏂帮紝鎵€浠ュ己鍒跺埛鏂颁笅 // 濂囨€細鐩存帴鐢ㄩ煶瑙嗛SDK婧愮爜璋冭瘯鐨勬椂鍊欙紝浼氭甯稿埛鏂帮紝浣嗘湁缂栬瘧鍑虹殑SDK鏃讹紝灏变笉浼氬埛鏂� this.$parent.$forceUpdate(); } } } </script> <style scoped> .screen-share-action-container { width: 100%; height: 100px; position: absolute; top: 30px; left: 0; display: flex; justify-content: space-around; z-index: 100; padding: 10px 0; background: #2d3033; } .screen-share-action-container .action { flex: 1; display: flex; flex-direction: column; align-items: center; font-size: 12px; color: white; } .action-img { width: 60px; height: 60px; } </style>