Comments (5)
ONN twice issue can be fixed with a re-entrancy guard:
pc.onnegotiationneeded = async e => {
if (pc._negotiating == true) return;
pc._negotiating = true;
try {
return cb(e);
} finally {
pc._negotiating = false;
}
}
So the updated code from tutorial will look like (ah, and it is async/await instead of promises too :) )
async function handleNegotiationNeededEvent() {
if (myPeerConnection._negotiating == true) return;
log("*** Negotiation needed");
myPeerConnection._negotiating = true;
try {
log("---> Creating offer");
const offer = await myPeerConnection.createOffer();
log("---> Creating new description object to send to remote peer");
await myPeerConnection.setLocalDescription(offer);
log("---> Sending offer to remote peer");
sendToServer({
name: myUsername,
target: targetUsername,
type: "video-offer",
sdp: myPeerConnection.localDescription
});
} catch (e) {
reportError(e)
} finally {
myPeerConnection._negotiating = false;
}
}
from samples-server.
Here is bug https://bugs.chromium.org/p/chromium/issues/detail?id=740501
from samples-server.
Solved that error but now this one.
Failed to execute 'addTrack' on 'RTCPeerConnection': A sender already exists for the track.
from samples-server.
yes, when two addTrack() are used , two onnegotiationneeded events will be fired. Still dont know what to do now
from samples-server.
I am having similar issue. Anyone able to figure this out. My scenarios:
- One user (say User A) connects with only audio track. Other user (say User B) connects with both audio and video tracks.
- If User B is offerer, connection is established perfectly and User A can display User B video and both are able to talk to each other.
- If User B is answerer and User it has to send 2 tracks, in which case it is triggering onnegotiationneeded event. Which in-turn starting another session of offer-answer session. Which is not desired.
- If I discard this extra onnegotiationneeded event, User A cannot see User B video. But only able to talk to each other.
Let me know if there is any solution for such solution. I am trying for last more than 1 week.
Thanks
from samples-server.
Related Issues (20)
- Video streaming had not play
- how to run it HOT 1
- How to attach remote video from another peer to <video> tag ?
- webrtc-from-chat sample socket server certification expired
- Missing Script? HOT 2
- webrtc-from-chat potential XSS vulnerability, unfiltered data. HOT 1
- Run webrtc-from-chat on hosting
- https://mdn-samples.mozilla.org/ is unresponsive HOT 2
- CODE_OF_CONDUCT.md isn't correct HOT 1
- Failed to execute 'createAnswer' on 'RTCOeerConnection' on the demo at glitch.me HOT 2
- webrtc-from-chat: addTransceiver: causes an extra video-offer/video-answer from callee
- webrtc: addTransceiver: demo doesn't work when trying to bypass trickle ICE HOT 1
- Adding a countdown timer before capturing picture
- Missing last symbol :)
- Not working for windows to mac
- What is the hostname for turns server?will it be chat servers address or we need to setup stun/turn server(or use default one eg: stun:stun.l.google.com:19302)
- Is there a way for this video stream to work on iOS? HOT 3
- Bugs HOT 1
- DOMException: Failed to execute 'setLocalDescription' on 'RTCPeerConnection': Called in wrong signalingState: kStable
- how to deploy webrtc-capturestill HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from samples-server.