peer.on('stream'.. does not fire if the first peer does not have a video track
- Dominant language
- JavaScript
- Stars
- 7.8k
- Forks
- 983
- PR merge metrics
- No merged PRs in 30d
Description
Everything works great if all users are streaming a video track. But if the first peer signals WITHOUT a video track, that user will not get other peers' video track.
```
addPeersAsCaller(userKeys: string[], stream) {
const participantsExcludingMe = userKeys.filter(x => x != this.meetingModel.me.userSettings.meetingUserKey);
participantsExcludingMe.forEach(userKey => {
const meetingUser = this.meetingModel.meetingUsers.find(x => x.userSettings.meetingUserKey === userKey);
if (!meetingUser.peer) {
const peer: SimplePeer.Instance = new SimplePeer({
initiator: true,
trickle: false,
stream,
wrtc: wrtc
});
peer.on('signal', signal => {
let signalData = new MeetingSignalMessage();
signalData.userSettings = this.meetingModel.me.userSettings;
signalData.signalData = signal;
signalData.callerKey = this.meetingModel.me.userSettings.meetingUserKey;
signalData.calleeKey = userKey;
this.meetingHub.sendOfferSignal(signalData);
meetingUser.isConnected = true;
this.calculateMinVideoWidth();
meetingUser.peer = peer;
});
peer.on('stream', stream => {
meetingUser.videoSrc = stream;
});
}
});
}
addPeersAsCallee(msg: MeetingSignalMessage, stream) {
const peer: SimplePeer.Instance = new SimplePeer({
initiator: false,
trickle: false,
stream,
wrtc: wrtc
});
const meetingUser = this.meetingModel.meetingUsers.find(x => x.userSettings.meetingUserKey === msg.callerKey);
peer.on('signal', signal => {
let signalData = new MeetingSignalMessage();
signalData.signalData = signal;
signalData.userSettings = this.meetingModel.me.userSettings;
signalData.callerKey = this.meetingModel.me.userSettings.meetingUserKey;
signalData.calleeKey = msg.callerKey;
this.meetingHub.sendAnswerSignal(signalData);
});
// this will not fire if I am not streaming video
peer.on('stream', stream => {
meetingUser.videoSrc = stream;
});
peer.signal(msg.signalData);
meetingUser.isConnected = true;
this.calculateMinVideoWidth();
meetingUser.userSettings = msg.userSettings;
meetingUser.peer = peer;
}
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.