| | |
| | | <template> |
| | | <div id="devicePlayer" v-loading="isLoging"> |
| | | |
| | | <el-dialog title="视频播放" top="0" :close-on-click-modal="false" :visible.sync="showVideoDialog" :destroy-on-close="true" @close="close()"> |
| | | <el-dialog title="视频播放" top="0" :close-on-click-modal="false" :visible.sync="showVideoDialog" @close="close()"> |
| | | <!-- <LivePlayer v-if="showVideoDialog" ref="videoPlayer" :videoUrl="videoUrl" :error="videoError" :message="videoError" :hasaudio="hasaudio" fluent autoplay live></LivePlayer> --> |
| | | <player ref="videoPlayer" :visible.sync="showVideoDialog" :videoUrl="videoUrl" :error="videoError" :message="videoError" :hasaudio="hasaudio" fluent autoplay live></player> |
| | | <player ref="videoPlayer" :visible.sync="showVideoDialog" :videoUrl="videoUrl" :error="videoError" :message="videoError" :height="false" :hasaudio="hasaudio" fluent autoplay live ></player> |
| | | <div id="shared" style="text-align: right; margin-top: 1rem;"> |
| | | <el-tabs v-model="tabActiveName" @tab-click="tabHandleClick"> |
| | | <el-tab-pane label="实时视频" name="media"> |
| | |
| | | </div> |
| | | <div style="display: flex; margin-bottom: 0.5rem; height: 2.5rem;"> |
| | | <span style="width: 5rem; line-height: 2.5rem; text-align: right;">播放地址:</span> |
| | | <el-input v-model="getPlayerShared.sharedUrl" :disabled="true" v-on:click.native="copySharedInfo(getPlayerShared.sharedUrl)"></el-input> |
| | | <el-input v-model="getPlayerShared.sharedUrl" :disabled="true" > |
| | | <template slot="append"> |
| | | <i class="cpoy-btn el-icon-document-copy" title="点击拷贝" v-clipboard="getPlayerShared.sharedUrl" @success="$message({type:'success', message:'成功拷贝到粘贴板'})"></i> |
| | | </template> |
| | | </el-input> |
| | | </div> |
| | | <div style="display: flex; margin-bottom: 0.5rem; height: 2.5rem;"> |
| | | <span style="width: 5rem; line-height: 2.5rem; text-align: right;">iframe:</span> |
| | | <el-input v-model="getPlayerShared.sharedIframe" :disabled="true" v-on:click.native="copySharedInfo(getPlayerShared.sharedIframe)"></el-input> |
| | | <el-input v-model="getPlayerShared.sharedIframe" :disabled="true" > |
| | | <template slot="append"> |
| | | <i class="cpoy-btn el-icon-document-copy" title="点击拷贝" v-clipboard="getPlayerShared.sharedIframe" @success="$message({type:'success', message:'成功拷贝到粘贴板'})"></i> |
| | | </template> |
| | | </el-input> |
| | | </div> |
| | | <div style="display: flex; margin-bottom: 0.5rem; height: 2.5rem;"> |
| | | <span style="width: 5rem; line-height: 2.5rem; text-align: right;">资源地址:</span> |
| | | <el-input v-model="getPlayerShared.sharedRtmp" :disabled="true" v-on:click.native="copySharedInfo(getPlayerShared.sharedRtmp)"></el-input> |
| | | <el-input v-model="getPlayerShared.sharedRtmp" :disabled="true" > |
| | | <template slot="append"> |
| | | <i class="cpoy-btn el-icon-document-copy" title="点击拷贝" v-clipboard="getPlayerShared.sharedRtmp" @success="$message({type:'success', message:'成功拷贝到粘贴板'})"></i> |
| | | </template> |
| | | </el-input> |
| | | </div> |
| | | </el-tab-pane> |
| | | <!--{"code":0,"data":{"paths":["22-29-30.mp4"],"rootPath":"/home/kkkkk/Documents/ZLMediaKit/release/linux/Debug/www/record/hls/kkkkk/2020-05-11/"}}--> |
| | |
| | | |
| | | <script> |
| | | // import player from '../dialog/rtcPlayer.vue' |
| | | import player from '../dialog/easyPlayer.vue' |
| | | // import LivePlayer from '@liveqing/liveplayer' |
| | | // import player from '../dialog/easyPlayer.vue' |
| | | import player from '../dialog/jessibuca.vue' |
| | | export default { |
| | | name: 'devicePlayer', |
| | | props: {}, |
| | |
| | | }, |
| | | computed: { |
| | | getPlayerShared: function () { |
| | | |
| | | return { |
| | | sharedUrl: window.location.host + '/' + this.videoUrl, |
| | | sharedIframe: '<iframe src="' + window.location.host + '/' + this.videoUrl + '"></iframe>', |
| | | sharedUrl: window.location.origin + '/#/play/wasm/' + encodeURIComponent(this.videoUrl), |
| | | sharedIframe: '<iframe src="' + window.location.origin + '/#/play/wasm/' + encodeURIComponent(this.videoUrl) + '"></iframe>', |
| | | sharedRtmp: this.videoUrl |
| | | }; |
| | | } |
| | |
| | | this.hasaudio = hasAudio; |
| | | this.isLoging = false; |
| | | // this.videoUrl = streamInfo.rtc; |
| | | this.videoUrl = streamInfo.ws_flv; |
| | | this.videoUrl = this.getUrlByStreamInfo(streamInfo); |
| | | this.streamId = streamInfo.streamId; |
| | | this.app = streamInfo.app; |
| | | this.playFromStreamInfo(false, streamInfo) |
| | | }, |
| | | getUrlByStreamInfo(streamInfo){ |
| | | let baseZlmApi = process.env.NODE_ENV === 'development'?`${location.host}/debug/zlm`:`${location.host}/zlm` |
| | | console.log(12121212) |
| | | console.log(baseZlmApi) |
| | | // return `${baseZlmApi}/${streamInfo.app}/${streamInfo.streamId}.flv`; |
| | | // return `http://${baseZlmApi}/${streamInfo.app}/${streamInfo.streamId}.flv`; |
| | | return streamInfo.ws_flv; |
| | | }, |
| | | coverPlay: function () { |
| | | var that = this; |
| | |
| | | playFromStreamInfo: function (realHasAudio, streamInfo) { |
| | | this.showVideoDialog = true; |
| | | this.hasaudio = realHasAudio && this.hasaudio; |
| | | this.$refs.videoPlayer.play(streamInfo.ws_flv) |
| | | this.$refs.videoPlayer.play(this.getUrlByStreamInfo(streamInfo)) |
| | | }, |
| | | close: function () { |
| | | console.log('关闭视频'); |
| | |
| | | row.endTime |
| | | }).then(function (res) { |
| | | var streamInfo = res.data; |
| | | that.app = streamInfo.app; |
| | | that.streamId = streamInfo.streamId; |
| | | that.videoUrl = streamInfo.ws_flv; |
| | | that.videoUrl = that.getUrlByStreamInfo(streamInfo); |
| | | that.recordPlay = true; |
| | | }); |
| | | } |
| | |
| | | this.videoUrl = ''; |
| | | this.$axios({ |
| | | method: 'get', |
| | | url: '/api/playback/stop/' + this.streamId |
| | | url: '/api/playback/stop/' + this.deviceId + "/" + this.channelId |
| | | }).then(function (res) { |
| | | if (callback) callback() |
| | | }); |