我想使用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) 我正在尝试在我的应用程序中设置一个会议模块。所以我在两个用户之间找到并创建了一个流。
问题是其他人无法加入。
我一直在尝试阅读他们的文档,但是我似乎无法找到如何实现它。
这是我的代码:
// 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) 您好,我是 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) 我正在尝试使用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)
客户端未连接也未发送消息。我尝试使用他们的示例连接到我的主机,这是有效的。我能够向主机发送消息。我的客户有什么问题?
我正在尝试按照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) 我正在尝试创建一个视频会议网络应用程序..
问题是我试图在中间会议上禁用我的相机,它可以工作,但我的笔记本电脑相机指示灯仍然亮着(灯亮着),但在我的网络上,视频显示空白屏幕,这是正常的还是我错过了什么?
这是我尝试的
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) 我正在使用 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) 我正在尝试使用 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)