old mode 100644
new mode 100755
| | |
| | | :hasAudio="hasAudio" fluent autoplay live></rtc-player> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="h265web">h265web敬请期待</el-tab-pane> |
| | | <el-tab-pane label="wsPlayer">wsPlayer 敬请期待</el-tab-pane> |
| | | </el-tabs> |
| | | <jessibucaPlayer v-if="Object.keys(this.player).length == 1 && this.player.jessibuca" ref="jessibuca" |
| | | :visible.sync="showVideoDialog" :videoUrl="videoUrl" :error="videoError" :message="videoError" |
| | |
| | | style="font-size: 1.875rem;"></i></div> |
| | | <div style="position: absolute; left: 7.25rem; top: 3.25rem; font-size: 1.875rem;" |
| | | @mousedown="ptzCamera('zoomout')" @mouseup="ptzCamera('stop')"><i |
| | | class="el-icon-zoom-out control-zoom-btn"></i></div> |
| | | class="el-icon-zoom-out control-zoom-btn"></i></div> |
| | | <div class="contro-speed" style="position: absolute; left: 4px; top: 7rem; width: 9rem;"> |
| | | <el-slider v-model="controSpeed" :max="255"></el-slider> |
| | | </div> |
| | |
| | | |
| | | </el-tab-pane> |
| | | <el-tab-pane label="语音对讲" name="broadcast"> |
| | | <div style="padding: 0 10px"> |
| | | <el-switch v-model="broadcastMode" :disabled="broadcastStatus !== -1" active-color="#409EFF" |
| | | active-text="喊话(Broadcast)" |
| | | inactive-text="对讲(Talk)"></el-switch> |
| | | </div> |
| | | <div class="trank" style="text-align: center;"> |
| | | <el-button @click="broadcastStatusClick()" :type="getBroadcastStatus()" :disabled="broadcastStatus === -2" |
| | | circle icon="el-icon-microphone" style="font-size: 32px; padding: 24px;margin-top: 24px;"/> |
| | |
| | | recordStartTime: 0, |
| | | showTimeText: "00:00:00", |
| | | streamInfo: null, |
| | | broadcastMode: true, |
| | | broadcastRtc: null, |
| | | broadcastStatus: -1, // -2 正在释放资源 -1 默认状态 0 等待接通 1 接通成功 |
| | | }; |
| | |
| | | // if (callback )callback(); |
| | | }, |
| | | |
| | | playFromStreamInfo: function (realHasAudio, streamInfo) { |
| | | this.showVideoDialog = true; |
| | | this.hasaudio = realHasAudio && this.hasaudio; |
| | | this.$refs[this.activePlayer].play(this.getUrlByStreamInfo(streamInfo)) |
| | | }, |
| | | close: function () { |
| | | console.log('关闭视频'); |
| | | if (!!this.$refs[this.activePlayer]) { |
| | | this.$refs[this.activePlayer].pause(); |
| | | } |
| | | this.videoUrl = ''; |
| | | this.coverPlaying = false; |
| | | this.showVideoDialog = false; |
| | | if (this.convertKey != '') { |
| | | this.convertStop(); |
| | | } |
| | | this.convertKey = '' |
| | | this.stopBroadcast() |
| | | }, |
| | | playFromStreamInfo: function (realHasAudio, streamInfo) { |
| | | this.showVideoDialog = true; |
| | | this.hasaudio = realHasAudio && this.hasaudio; |
| | | if (this.$refs[this.activePlayer]) { |
| | | this.$refs[this.activePlayer].play(this.getUrlByStreamInfo(streamInfo)) |
| | | }else { |
| | | this.$nextTick(() => { |
| | | this.$refs[this.activePlayer].play(this.getUrlByStreamInfo(streamInfo)) |
| | | }); |
| | | } |
| | | }, |
| | | close: function () { |
| | | console.log('关闭视频'); |
| | | if (!!this.$refs[this.activePlayer]){ |
| | | this.$refs[this.activePlayer].pause(); |
| | | } |
| | | this.videoUrl = ''; |
| | | this.coverPlaying = false; |
| | | this.showVideoDialog = false; |
| | | if (this.convertKey != '') { |
| | | this.convertStop(); |
| | | } |
| | | this.convertKey = '' |
| | | this.stopBroadcast() |
| | | }, |
| | | |
| | | copySharedInfo: function (data) { |
| | | console.log('复制内容:' + data); |
| | |
| | | this.tracks = [] |
| | | let _this = this; |
| | | this.$copyText(data).then( |
| | | function (e) { |
| | | _this.$message({ |
| | | showClose: true, |
| | | message: '复制成功', |
| | | type: 'success' |
| | | }); |
| | | }, |
| | | function (e) { |
| | | _this.$message({ |
| | | showClose: true, |
| | | message: '复制失败,请手动复制', |
| | | type: 'error' |
| | | }); |
| | | } |
| | | function (e) { |
| | | _this.$message({ |
| | | showClose: true, |
| | | message: '复制成功', |
| | | type: 'success' |
| | | }); |
| | | }, |
| | | function (e) { |
| | | _this.$message({ |
| | | showClose: true, |
| | | message: '复制失败,请手动复制', |
| | | type: 'error' |
| | | }); |
| | | } |
| | | ); |
| | | }, |
| | | ptzCamera: function (command) { |
| | |
| | | // 发起语音对讲 |
| | | this.$axios({ |
| | | method: 'get', |
| | | url: '/api/play/broadcast/' + this.deviceId + '/' + this.channelId + "?timeout=30" |
| | | }).then( (res)=> { |
| | | if (res.data.code == 0) { |
| | | url: '/api/play/broadcast/' + this.deviceId + '/' + this.channelId + "?timeout=30&broadcastMode=" + this.broadcastMode |
| | | }).then((res) => { |
| | | if (res.data.code === 0) { |
| | | let streamInfo = res.data.data.streamInfo; |
| | | if (document.location.protocol.includes("https")) { |
| | | this.startBroadcast(streamInfo.rtcs) |
| | | }else { |
| | | } else { |
| | | this.startBroadcast(streamInfo.rtc) |
| | | } |
| | | |
| | | }else { |
| | | } else { |
| | | this.$message({ |
| | | showClose: true, |
| | | message: res.data.msg, |
| | |
| | | }); |
| | | } |
| | | }); |
| | | }else if (this.broadcastStatus === 1) { |
| | | } else if (this.broadcastStatus === 1) { |
| | | this.broadcastStatus = -1; |
| | | this.broadcastRtc.close() |
| | | } |
| | |
| | | let pushKey = res.data.data.pushKey; |
| | | // 获取推流鉴权KEY |
| | | url += "&sign=" + crypto.createHash('md5').update(pushKey, "utf8").digest('hex') |
| | | console.log("开始语音对讲: " + url) |
| | | console.log("开始语音喊话: " + url) |
| | | this.broadcastRtc = new ZLMRTCClient.Endpoint({ |
| | | debug: true, // 是否打印日志 |
| | | zlmsdpUrl: url, //流地址 |
| | |
| | | console.error('不支持webrtc', e) |
| | | this.$message({ |
| | | showClose: true, |
| | | message: '不支持webrtc, 无法进行语音对讲', |
| | | message: '不支持webrtc, 无法进行语音喊话', |
| | | type: 'error' |
| | | }); |
| | | this.broadcastStatus = -1; |