index.vue 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <template>
  2. <div class="vent-flex-row-wrap">
  3. <div v-for="i in num" :key="i">
  4. <video :id="'video'+i" muted autoplay width="400" height="400"></video>
  5. </div>
  6. </div>
  7. </template>
  8. <script lang="ts" setup>
  9. import {onMounted, onUnmounted} from 'vue';
  10. const webRtcServerList = <any[]>[]
  11. const num = 10
  12. const urls = [
  13. 'rtsp://76.75.8.120/axis-media/media.amp',
  14. 'rtsp://80.90.151.112/axis-media/media.amp',
  15. 'rtsp://174.6.126.86/axis-media/media.amp',
  16. 'rtsp://213.34.225.97/axis-media/media.amp',
  17. 'rtsp://76.75.8.120/axis-media/media.amp',
  18. 'rtsp://176.65.94.105/axis-media/media.amp',
  19. 'rtsp://37.157.51.30/axis-media/media.amp',
  20. 'rtsp://64.187.201.16/axis-media/media.amp',
  21. 'rtsp://194.32.173.211/axis-media/media.amp',
  22. 'rtsp://admin:admin12345@192.168.1.64:554/Streaming/Channels/1'
  23. ]
  24. function getVideo() {
  25. const ip = VUE_APP_URL.webRtcUrl;
  26. for(let i =1; i<= num; i++){
  27. const webRtcServer = new window['WebRtcStreamer']('video'+i , location.protocol + ip)
  28. webRtcServerList.push(webRtcServer)
  29. webRtcServer.connect('rtsp://admin:admin12345@192.168.183.64:554/Streaming/Channels/1')
  30. // webRtcServer.connect(urls[i])
  31. }
  32. }
  33. onMounted(() => {
  34. getVideo()
  35. })
  36. onUnmounted(() => {
  37. for (let i = 0; i < num; i++) {
  38. webRtcServerList[i].disconnect()
  39. webRtcServerList[i] = null
  40. }
  41. })
  42. </script>
  43. <style lang="less">
  44. </style>