标签: peerjs

Chrome 不会通过 WebRTC/Peer.js 播放 WebAudio getUserMedia

我想使用Peer.js通过 WebRTC 制作一个简单的纯音频流。我在本地运行简单的 PeerServer。

以下内容在 Firefox 30 中运行良好,但我无法在Chrome 35 中运行。我希望 PeerJS 设置有问题,但 Chrome -> Firefox 工作得很好,而 Chrome -> Chrome 似乎发送流,但不会通过扬声器播放。

设置 getUserMedia 注意:取消对下面这些行的注释将让我听到 Chrome 和 Firefox 中的环回。

navigator.getUserMedia = (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia);
window.AudioContext = window.AudioContext || window.webkitAudioContext;

if(navigator.getUserMedia) {
    navigator.getUserMedia({video: false, audio: true}, getMediaSuccess, getMediaError);
} else {
    alert('getUserMedia not supported.');
}

var localMediaStream;
//var audioContext = new AudioContext();

function getMediaSuccess(mediaStream) {
    //var microphone = audioContext.createMediaStreamSource(mediaStream);
    //microphone.connect(audioContext.destination);
    localMediaStream = mediaStream;
}

function …
Run Code Online (Sandbox Code Playgroud)

javascript firefox google-chrome webrtc peerjs

5
推荐指数
2
解决办法
3836
查看次数

Peerjs 多个查看器

我正在尝试在我的应用程序中设置一个会议模块。所以我在两个用户之间找到并创建了一个流。

问题是其他人无法加入。

我一直在尝试阅读他们的文档,但是我似乎无法找到如何实现它。

这是我的代码:

    // Compatibility shim
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;

navigator.getUserMedia({audio: true, video: true}, function (stream) {
    // Set your video displays
    $('#my-video').prop('src', URL.createObjectURL(stream));
    window.localStream = stream;
}, function () {
    $('#step1-error').show();
});

peerFactory.on('error', function (err) {
    alert(err.message);
});

peerFactory.on('connection', function (id) {
    alert('new logon' + id);
});



// Receiving a call
peerFactory.on('call', function (call) {
    // Answer the call automatically (instead of prompting user) for demo purposes
    var r = confirm('Ny kald fra ');
    if …
Run Code Online (Sandbox Code Playgroud)

javascript peerjs

5
推荐指数
1
解决办法
3461
查看次数

直接从coldstart弹出状态

我使用离子框架构建了一个Cordova 应用程序.它是使用Peer JS构建的,我需要应用程序在我的同伴收到来电时快速冷启动打开状态,有点像电话应用程序在我们接到电话时打开来电活动.

目前我正在使用离子推送通知来点击通知打开状态,但这需要太长时间并从启动屏幕开始加载.

有没有办法快速打开我的状态包含接收调用代码到前台

performance android webrtc peerjs ionic-framework

5
推荐指数
1
解决办法
295
查看次数

无法连接到其他人的视频和音频

您好,我是 peerjs 的新手。目前我正在尝试编写视频通话应用程序。我面临着一个问题。它只显示我的视频。它没有显示另一个用户的视频和音频。请帮助我被卡住。

控制台(前端)上的错误是

websocket.js:87 WebSocket 连接到“ws://localhost:3000/socket.io/?EIO=4&transport=websocket&sid=uaFPNhLHfKuVgldiAAAA”失败:帧头无效

server.js(后端)

const express = require('express');
const app = express();
const server = require('http').Server(app);
const io = require('socket.io')(server);
const { v4: uuidV4 } = require('uuid');
const { ExpressPeerServer } = require('peer');

const peerServer = ExpressPeerServer(server, {
  debug: true,
});

app.set('view engine', 'ejs');
app.use(express.static('public'));
app.use('/peerjs', peerServer);

app.get('/', (req, res) => {
  res.redirect(`/${uuidV4()}`);
});

app.get('/:room', (req, res) => {
  res.render('room', { roomId: req.params.room });
});

io.on('connection', (socket) => {
  socket.on('join-room', (roomId, userId) => {
    socket.join(roomId);
    socket.to(roomId).emit('user-connected', …
Run Code Online (Sandbox Code Playgroud)

websocket express socket.io webrtc peerjs

5
推荐指数
0
解决办法
273
查看次数

如何使用peerjs连接到主机?

我正在尝试使用peerjs将主机与客户端连接。我有两个文件(一个用于主机,一个用于客户端)。主机将生成客户端用于连接到他的 peerId。它基本上是来自here的教程。

主机.html

const peer = new Peer()

peer.on('open', () => {
  console.log('ID: ' + peer.id)
})

peer.on('connection', (conn) => {
  conn.on('data', (data) => {
    // Will print 'hi!'
    console.log(data)
  })
  conn.on('open', () => {
    conn.send('hello!')
  })
})
Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/peerjs@1.3.1/dist/peerjs.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

客户端.html

const peer = new Peer()

const conn = peer.connect('1781a113-d095-4be5-9969-b80d9c364f6b')
conn.on('open', () => {
  conn.send('hi!')
})
Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/peerjs@1.3.1/dist/peerjs.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

客户端未连接也未发送消息。我尝试使用他们的示例连接到我的主机,这是有效的。我能够向主机发送消息。我的客户有什么问题?

javascript p2p peer webrtc peerjs

5
推荐指数
1
解决办法
101
查看次数

结合express设置peerJS服务器

我正在尝试按照https://github.com/peers/peerjs-server#combining-with-existing-express-app上的自述文件设置我自己的 peerJS 服务器

我在服务器上的代码

port = process.env.PORT or 8080
http = require 'http'
express = require 'express'
app = express()
server = http.createServer app
app.use '/peerjs', ExpressPeerServer server, debug : on
server.listen port
server.listen 9000
Run Code Online (Sandbox Code Playgroud)

我在客户端的代码

peer = new Peer
    host : 'localhost'
    port : 9000
    secure : no
    config :
        iceServers : [ url : 'stun:stun.l.google.com:19302' ]
Run Code Online (Sandbox Code Playgroud)

我在客户端控制台上收到此错误

GET http://localhost:9000/peerjs/peerjs/id?ts=14150106969530.4679094860330224 net::ERR_CONNECTION_REFUSED
Run Code Online (Sandbox Code Playgroud)

node.js express peerjs

4
推荐指数
1
解决办法
7794
查看次数

如何完全关闭媒体流javascript上的相机

我正在尝试创建一个视频会议网络应用程序..

问题是我试图在中间会议上禁用我的相机,它可以工作,但我的笔记本电脑相机指示灯仍然亮着(灯亮着),但在我的网络上,视频显示空白屏幕,这是正常的还是我错过了什么?

这是我尝试的

videoAction() {
  navigator.mediaDevices.getUserMedia({
    video: true,
    audio: true
  }).then(stream => {
     this.myStream = stream
  })

  this.myStream.getVideoTracks()[0].enabled = !(this.myStream.getVideoTracks()[0].enabled)
  this.mediaStatus.video = this.myStream.getVideoTracks()[0].enabled
}
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome webrtc peerjs

4
推荐指数
2
解决办法
2万
查看次数

仅一帧显示 WebRTC 流

我正在使用 PeerJS 及其云托管服务器来构建 WebRTC 应用程序。这是我的代码:

navigator.getMedia = ( navigator.getUserMedia ||
                       navigator.webkitGetUserMedia ||
                       navigator.mozGetUserMedia ||
                       navigator.msGetUserMedia);

window.URL = window.URL || window.webkitURL;

var callSettings = {
  video: {
    mandatory: {
      maxWidth: 400,
      maxHeight: 300
    }
  },
  audio: true
};

$(document).ready(function ()
{
    var videoel = $("#teacher-stream")[0];

    $(document).on('click', ".start-call", function () //A button initiates call
    {
        var peerID = $(this).data('id'); //Button contains ID of peer
        navigator.getMedia(callSettings, function (stream)
        {
            var call = peer.call(peerID, stream);
            call.on('stream', function(remoteStream)
            {
                console.log('stream!');
                videoel.src = window.URL.createObjectURL(remoteStream);
                            //On stream …
Run Code Online (Sandbox Code Playgroud)

javascript webcam webrtc peerjs

3
推荐指数
1
解决办法
1068
查看次数

获取 PeerServer 密钥

PeerJS 文档

我们传递给 Peer 构造函数的“密钥”是 PeerServer 云 API 密钥。您现在可以使用我们的,但您应该注册自己的免费密钥

但是,给定的链接仅指向页面,其中没有有关如何获取 PeerServer 密钥的说明。

那么,如何获得 PeerServer 密钥?

javascript p2p peerjs

3
推荐指数
1
解决办法
2303
查看次数

PeerJs 关闭视频通话未触发关闭事件

我正在尝试使用 PeerJs 创建一个单向视频应用程序。我已经成功地运行了自己的对等服务器并通过单击按钮进行连接,但我无法关闭连接,以便对等点可以接收/与新对等点建立新连接。

每个用户要么是主机,要么是客户端,永远不会倒退。因此,主机可以选择连接到哪个客户端,并且客户端将开始将其摄像头反馈流回主机。closeCon()单击按钮即可调用该函数。

    $(document).ready(function(){
      peer = new Peer('100001', {host: 'my.url', port: '9900', path: '/peerjs', key: 'peerjs', secure: true, debug: 3});
      peer.on("open", function(id) {
          console.log("My peer ID is: " + id);
      });
        video = document.getElementById('vidSrc');
    })


    function callTheGuy(id){
      var getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
      getUserMedia({video: true, audio: false}, function(stream) {
        window.call = peer.call(id, stream);
        localStream = stream;
        window.call.on('stream', function(remoteStream) {
          let video = document.getElementById('vidArea');
          video.srcObject = remoteStream;
          video.play();
          $("#videoModal").modal('show')
        });
      }, function(err) {
        console.log('Failed to get …
Run Code Online (Sandbox Code Playgroud)

javascript webrtc peerjs

3
推荐指数
1
解决办法
6283
查看次数