vue使用JSWebrtc播放webrtc视频流

1、下载JSWebrtc.min.js文件

地址:https://github.com/kernelj/jswebrtc/tree/master/dist
在这里插入图片描述

2、使用jswebrtc

2.1文件放到public/static目录下,位置不能放错

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QixVtrlu-1688699698851)(https://mg-blog.csdnimg.cn/a5c7e013af8c49f7bb627343686305e1.png)]

2.2在index.html中引用

<script src="static/jswebrtc.min.js" type="text/javascript"></script>

3、自定义webrtc组件

在这里插入图片描述

<template>
  <!-- webrtc播放器 -->
  <video id="jswebrtc" ref="jswebrtc" controls style="width: 100%; height: 100%; object-fit: fill;"></video>
</template>

<script>
export default {
  name: 'webrtcPlayer',
  props: {
    videoSrc: {
      type: String,
      default: ''
    }
  },
  data () {
    return {
      player: null
    }
  },
  mounted() {
    // this.initVideo();
    this.$watch('videoSrc', () => {
      if (this.videoSrc) {
        this.initVideo(this.videoSrc);
      }
    }, {immediate: true})
  },
  methods: {
    initVideo(url) {
      if (this.player) {
        this.player.destroy();
        this.player = null;
      }

      let videoDom = document.getElementById('jswebrtc');
      // let url = 'webrtc://192.168.50.188/01/0001/aivision/stream'
      this.player = new JSWebrtc.Player(url, {
        video: videoDom,
        autoplay: true,
        onplay: (obj) => {
          videoDom.addEventListener('canplay', function(e) {
            videoDom.play();
          })
        }
      })
    }
  },
  beforeDestroy() {
    if (this.player) {
      this.player.destroy();
    }
  }
}
</script>

<style>
</style>


4、组件中引用webrtc组件

在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Vue.js是一个流行的JavaScript框架,用于构建用户界面。它提供了一种简洁、灵活的方式来组织和管理前端代码。要在Vue.js播放WebRTC视频流,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了Vue.js并创建了一个Vue项目。 2. 在Vue项目中,你可以使用WebRTC API来获取视频流。可以使用`getUserMedia`方法从用户的摄像头和麦克风获取视频和音频流。 3. 创建一个Vue组件来处理视频流。在这个组件中,你可以使用`<video>`标签来显示视频流。通过设置`srcObject`属性,将获取到的视频流赋值给`<video>`标签。 4. 在Vue组件中,你可以使用`mounted`生命周期钩子函数来初始化WebRTC连接并获取视频流。在这个函数中,你可以使用`getUserMedia`方法来获取视频流,并将其赋值给`<video>`标签。 5. 在Vue组件中,你还可以使用其他WebRTC API来处理视频流,例如添加滤镜、调整音量等。 下面是一个简单的示例代码: ```html <template> <div> <video ref="videoElement" autoplay></video> </div> </template> <script> export default { mounted() { navigator.mediaDevices.getUserMedia({ video: true }) .then(stream => { this.$refs.videoElement.srcObject = stream; }) .catch(error => { console.error('Error accessing video stream:', error); }); } }; </script> ``` 这是一个简单的Vue组件,它使用`getUserMedia`方法获取视频流,并将其赋值给`<video>`标签。你可以将这个组件添加到你的Vue项目中,并根据需要进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值