我们正在与peerjs(Webrtc)建立视频聊天.我们有一个nodewebkit版本和一个chrome版本.但由于某种原因,如果chrome启动了一个mediawebkit的媒体流,我们在nw中得到了跟随错误.
PeerJS: Creating RTCPeerConnection.
peer.min.js:1 PeerJS: Listening for ICE candidates.
peer.min.js:1 PeerJS: Listening for `negotiationneeded`
peer.min.js:1 PeerJS: Listening for data channel
peer.min.js:1 PeerJS: Listening for remote stream
peerJS: Setting remote description RTCSessionDescription {sdp: "v=0?o=- 2956768960815374026 2 IN IP4 127.0.0.1?s…5525 label:87a9904d-945d-4393-ad98-68be98482104?", type: "offer"}
peer.min.js:1 PeerJS: ERROR Error: Failed to parse SessionDescription. Failed to parse audio codecs correctly.
callingManager.js:293 webrtc:Failed to parse SessionDescription. Failed to parse audio codecs correctly.
peer.min.js:1 PeerJS: Failed to setRemoteDescription, Failed to parse SessionDescription. Failed to parse audio …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用WebRTC(Peer.js)创建游戏。而且我无法通过“ http”进行视频通话...也许只能通过https进行?PS媒体呼叫的所有工作示例(我看到)都使用https!
1) http://cdn.peerjs.com/demo/videochat/ (doesn't work)
2) https://simplewebrtc.com/demo.html (works)
Run Code Online (Sandbox Code Playgroud) 帮助我使用 webRTC 库“peer.js”。为了让它工作,我需要一个我自己的服务器,所以我尝试在 evennode.com 上安装 peerjs。在托管设置中,它声明了启动命令 -> 自动检测(推荐)(如果 package.json 可用,您的应用程序将使用 npm start 启动。)。
所以我做了接下来的动作:
在那个包 .json 中有: "scripts": { "test": "mocha test", "start": "peerjs --port 9000 --key peerjs" } 我也试图说明(因为我从我的本地服务器)
"start": "bin/peerjs --port ${PORT:=9000}"
问题:应用程序没有启动。日志接下来写道:
2018-01-27 18:41:41 102ea39d5429 ---> Starting app
2018-01-27 18:41:41 102ea39d5429 Detected package.json start script
2018-01-27 18:41:42 102ea39d5429
2018-01-27 18:41:42 102ea39d5429 > peer@0.2.8 start /data/app
2018-01-27 18:41:42 102ea39d5429 > peerjs --port 9000 --key peerjs
2018-01-27 18:41:42 102ea39d5429
2018-01-27 18:41:42 102ea39d5429 sh: 1: …Run Code Online (Sandbox Code Playgroud) 我尝试使用peerJS进行webRTC视频会议并成功进行了一对一会议,我需要一些帮助来推进多方视频会议,在这里我尝试解释我做了什么,请从我罢工的地方提供帮助
在这里我发布我的完整代码,以便任何人都可以通过修改一些信息来使用,
意图
达到了
我的情况
待处理并需要帮助
如何在 Alice、Bob 和 Carole 之间进行会议?
/*-----------------
indexedDB
------------------*/
var iDB;
const openiDB = indexedDB.open('webRTC',1)
openiDB.onupgradeneeded = function(){
iDB = openiDB.result
if(!iDB.objectStoreNames.contains('contacts')){
iDB.createObjectStore('contacts',{keyPath:'mobile',unique:true})
} …Run Code Online (Sandbox Code Playgroud)我试图在对等连接中发送两个调用,并且我想通过 meta_data 区分它们,但当我检查 meta_data 时,我得到 null。如何在拨打电话时添加元数据?这是我当前的代码。
let cameracall = peer.call(conn.peer,ourcamera,{
meta_data:JSON.stringify({ "type":"camera" })
});
let screencall = peer.call(conn.peer,ourscreen,{
meta_data:JSON.stringify({"type":"help"})
});
Run Code Online (Sandbox Code Playgroud)
我打算使用 PeerJs 创建 P2P 连接(数据和后来的视频)。我检查了教程并使用了以下代码。
在浏览器A(Chrome 38)中:
var local;
var remote;
function peerJsInit() {
//listening host
local = new Peer(
{
key: 'myPeerJSKey'
});
local.on('connection', function(conn) {
alert('Connection is open');
conn.on('data', function(data) {
alert('Data: '+data);
});
});
}
function peerSend() {
remote = new Peer(
{
key: 'myPeerJSKey',
debug: true
});
var c = remote.connect('remoteId');
c.on('open', function() {
alert('connected');
c.send(' peer');
});
}
Run Code Online (Sandbox Code Playgroud)
在浏览器B(Chrome 38)中:
var local;
var remote;
function peerJsInit() {
//listening host
local = new Peer({
key: 'myPeerJSKey' …Run Code Online (Sandbox Code Playgroud) 以下代码在从 localhost 提供服务时工作正常,但在部署到 Heroku 时失败说明:TypeError: navigator.mediaDevices is undefined
navigator.mediaDevices.getUserMedia({audio: true, video: true}).then(function(stream){
video = $('#myVid')[0];
video.srcObject = stream;
video.onloadedmetadata = function(e) {
video.play();
};
Run Code Online (Sandbox Code Playgroud)
包含来自 WebRtC 的 adapter.js 无济于事。你有过类似的经历并解决了吗?
所以我正在学习 NextJs 并尝试构建一个音频聊天应用程序,当我尝试导入时我陷入困境PeerJs
它抛出一个窗口未定义错误。
import Peer from 'peerjs';
export default function Home() {
useEffect(() => {
const myPeer = new Peer(undefined, {
host: '/',
port: '3001'
})
}, [])
}
Run Code Online (Sandbox Code Playgroud) let file = fileUpload.files[0];
let offset = 0;
let chunkSize = 1024*1024*16;
file.arrayBuffer().then((buffer) => {
while(buffer.byteLength){
const chunk = buffer.slice(0, chunkSize);
buffer = buffer.slice(chunkSize, buffer.byteLength);
dataChannel.send(chunk);
}
})
Run Code Online (Sandbox Code Playgroud)
它适用于小文件,但适用于大文件。
我正在使用peerjs来实现视频会议应用程序,问题是我希望客户端即使没有麦克风或摄像头也能连接,当我获取用户媒体时,我会检查他们是否有可用的设备,当他们没有时没有任何或如果它们阻止设备,我会尝试回退到空 MediaStream,但是当我尝试连接两个对等点时,连接的行为仅在发起者具有调用 getUserMedia 的传统流产品时才按预期工作,如果发起者有一个空的 MediaStream 东西根本不起作用。
peerjs ×12
webrtc ×9
javascript ×7
firefox ×1
hosting ×1
next.js ×1
node-webkit ×1
node.js ×1
p2p ×1
reactjs ×1
server ×1
simple-peer ×1