|
@@ -6,42 +6,18 @@
|
|
@close="closeDialog(0)"
|
|
@close="closeDialog(0)"
|
|
@open="open"
|
|
@open="open"
|
|
>
|
|
>
|
|
- <!-- <div>{{ deviceCode }}</div> -->
|
|
|
|
- <!-- <div style="background: #000">
|
|
|
|
- <video
|
|
|
|
- id="myVideo"
|
|
|
|
- :src="videoUrl"
|
|
|
|
- style="width: 100%; height: 400px"
|
|
|
|
- poster
|
|
|
|
- loop="loop"
|
|
|
|
- autoplay="autoplay"
|
|
|
|
- ></video>
|
|
|
|
- </div> -->
|
|
|
|
-
|
|
|
|
- <video
|
|
|
|
- id="my-video"
|
|
|
|
- class="video-js vjs-default-skin"
|
|
|
|
- controls
|
|
|
|
- preload="auto"
|
|
|
|
- style="width: 100%; height: 400px"
|
|
|
|
- poster
|
|
|
|
- loop="loop"
|
|
|
|
- autoplay="autoplay"
|
|
|
|
- >
|
|
|
|
- <!-- <source
|
|
|
|
- src="http://cctvalih5ca.v.myalicdn.com/live/cctv1_2/index.m3u8"
|
|
|
|
- type="application/x-mpegURL"
|
|
|
|
- /> -->
|
|
|
|
-
|
|
|
|
- <source :src="videoUrl" type="application/x-mpegURL" />
|
|
|
|
- </video>
|
|
|
|
|
|
+
|
|
|
|
+ <div
|
|
|
|
+ v-html="randerHtml"
|
|
|
|
+ style="width: 100%; height: 400px; background: #000"
|
|
|
|
+ ></div>
|
|
|
|
+
|
|
</el-dialog>
|
|
</el-dialog>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
import { defineComponent, ref, watchEffect } from 'vue'
|
|
import { defineComponent, ref, watchEffect } from 'vue'
|
|
|
|
|
|
-
|
|
|
|
import videojs from 'video.js'
|
|
import videojs from 'video.js'
|
|
import 'videojs-contrib-hls'
|
|
import 'videojs-contrib-hls'
|
|
|
|
|
|
@@ -59,37 +35,51 @@ export default defineComponent({
|
|
const dialogVisible = ref(false)
|
|
const dialogVisible = ref(false)
|
|
|
|
|
|
const videoUrl = ref('')
|
|
const videoUrl = ref('')
|
|
|
|
+ const options = []
|
|
|
|
+ const player = ref('')
|
|
|
|
+ const randerHtml = ref('')
|
|
|
|
|
|
// open(): Dialog弹窗打开之前做的事
|
|
// open(): Dialog弹窗打开之前做的事
|
|
const open = () => {
|
|
const open = () => {
|
|
- window.setTimeout(function () {
|
|
|
|
- videojs(
|
|
|
|
- 'my-video',
|
|
|
|
- {
|
|
|
|
- bigPlayButton: false,
|
|
|
|
- textTrackDisplay: false,
|
|
|
|
- posterImage: true,
|
|
|
|
- errorDisplay: false,
|
|
|
|
- controlBar: true,
|
|
|
|
- },
|
|
|
|
- function () {
|
|
|
|
- // alert(1);
|
|
|
|
- console.log(this)
|
|
|
|
-
|
|
|
|
- this.play()
|
|
|
|
- }
|
|
|
|
- )
|
|
|
|
- }, 5000)
|
|
|
|
|
|
|
|
// videoUrl.value = 'http://47.103.74.123/hls/'+props.deviceCode+'.m3u8';
|
|
// videoUrl.value = 'http://47.103.74.123/hls/'+props.deviceCode+'.m3u8';
|
|
- videoUrl.value =
|
|
|
|
- 'http://cctvalih5ca.v.myalicdn.com/live/cctv1_2/index.m3u8'
|
|
|
|
|
|
+ videoUrl.value ='http://cctvalih5ca.v.myalicdn.com/live/cctv1_2/index.m3u8'
|
|
|
|
+
|
|
|
|
+ window.setTimeout(getVideo, 100)
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
+ function getVideo() {
|
|
|
|
+ randerHtml.value =
|
|
|
|
+ '<video id="my-video" class="video-js vjs-default-skin" controls preload="auto" style="width: 100%; height: 400px" poster loop="loop" autoplay="autoplay" ></video>'
|
|
|
|
|
|
- const options = []
|
|
|
|
|
|
+ let options = {
|
|
|
|
+ bigPlayButton: false,
|
|
|
|
+ textTrackDisplay: false,
|
|
|
|
+ posterImage: true,
|
|
|
|
+ errorDisplay: false,
|
|
|
|
+ controlBar: true,
|
|
|
|
+ autoplay: true,
|
|
|
|
+ controls: true,
|
|
|
|
+ sources: [
|
|
|
|
+ {
|
|
|
|
+ src: videoUrl.value,
|
|
|
|
+ type: 'application/x-mpegURL',
|
|
|
|
+ },
|
|
|
|
+ ],
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ window.setTimeout(function () {
|
|
|
|
+ player.value = videojs('my-video', options)
|
|
|
|
+ }, 100)
|
|
|
|
+ }
|
|
|
|
|
|
// 关闭弹框
|
|
// 关闭弹框
|
|
const closeDialog = () => {
|
|
const closeDialog = () => {
|
|
|
|
+ if (player.value) {
|
|
|
|
+ player.value.dispose()
|
|
|
|
+ randerHtml.value = ''
|
|
|
|
+ }
|
|
|
|
+
|
|
context.emit('closeDialog', false)
|
|
context.emit('closeDialog', false)
|
|
dialogVisible.value = false
|
|
dialogVisible.value = false
|
|
}
|
|
}
|
|
@@ -105,6 +95,10 @@ export default defineComponent({
|
|
options,
|
|
options,
|
|
open,
|
|
open,
|
|
videoUrl,
|
|
videoUrl,
|
|
|
|
+
|
|
|
|
+ getVideo,
|
|
|
|
+ player,
|
|
|
|
+ randerHtml,
|
|
}
|
|
}
|
|
},
|
|
},
|
|
})
|
|
})
|