|
@@ -69,6 +69,24 @@ function init() {
|
69
|
69
|
return;
|
70
|
70
|
}
|
71
|
71
|
|
|
72
|
+ obtainAudioAndVideoPermissions(function (stream) {
|
|
73
|
+ var audioStream = new webkitMediaStream(stream);
|
|
74
|
+ var videoStream = new webkitMediaStream(stream);
|
|
75
|
+ var videoTracks = stream.getVideoTracks();
|
|
76
|
+ var audioTracks = stream.getAudioTracks();
|
|
77
|
+ for (var i = 0; i < videoTracks.length; i++) {
|
|
78
|
+ audioStream.removeTrack(videoTracks[i]);
|
|
79
|
+ }
|
|
80
|
+ VideoLayout.changeLocalAudio(audioStream);
|
|
81
|
+ startLocalRtpStatsCollector(audioStream);
|
|
82
|
+
|
|
83
|
+ for (i = 0; i < audioTracks.length; i++) {
|
|
84
|
+ videoStream.removeTrack(audioTracks[i]);
|
|
85
|
+ }
|
|
86
|
+ VideoLayout.changeLocalVideo(videoStream, true);
|
|
87
|
+ maybeDoJoin();
|
|
88
|
+ });
|
|
89
|
+
|
72
|
90
|
var jid = document.getElementById('jid').value || config.hosts.anonymousdomain || config.hosts.domain || window.location.hostname;
|
73
|
91
|
connect(jid);
|
74
|
92
|
}
|
|
@@ -100,29 +118,11 @@ function connect(jid, password) {
|
100
|
118
|
if (config.useStunTurn) {
|
101
|
119
|
connection.jingle.getStunAndTurnCredentials();
|
102
|
120
|
}
|
103
|
|
- obtainAudioAndVideoPermissions(function (stream) {
|
104
|
|
- audioStream = new webkitMediaStream(stream);
|
105
|
|
- videoStream = new webkitMediaStream(stream);
|
106
|
|
- var videoTracks = stream.getVideoTracks();
|
107
|
|
- var audioTracks = stream.getAudioTracks();
|
108
|
|
- for (var i = 0; i < videoTracks.length; i++) {
|
109
|
|
- audioStream.removeTrack(videoTracks[i]);
|
110
|
|
- }
|
111
|
|
- audioStreamReady(audioStream);
|
112
|
|
- VideoLayout.changeLocalAudio(audioStream);
|
113
|
|
- startLocalRtpStatsCollector(audioStream);
|
114
|
|
-
|
115
|
|
- for (i = 0; i < audioTracks.length; i++) {
|
116
|
|
- videoStream.removeTrack(audioTracks[i]);
|
117
|
|
- }
|
118
|
|
- VideoLayout.changeLocalVideo(videoStream, true);
|
119
|
|
- doJoin();
|
120
|
|
- });
|
121
|
|
-
|
122
|
121
|
document.getElementById('connect').disabled = true;
|
123
|
122
|
|
124
|
123
|
if(password)
|
125
|
124
|
authenticatedUser = true;
|
|
125
|
+ maybeDoJoin();
|
126
|
126
|
} else if (status === Strophe.Status.CONNFAIL) {
|
127
|
127
|
if(msg === 'x-strophe-bad-non-anon-jid') {
|
128
|
128
|
anonymousConnectionFailed = true;
|
|
@@ -165,16 +165,13 @@ function obtainAudioAndVideoPermissions(callback) {
|
165
|
165
|
});
|
166
|
166
|
}
|
167
|
167
|
|
168
|
|
-function audioStreamReady(stream) {
|
169
|
|
-
|
170
|
|
-
|
|
168
|
+function maybeDoJoin() {
|
|
169
|
+ if (connection && connection.connected && Strophe.getResourceFromJid(connection.jid) // .connected is true while connecting?
|
|
170
|
+ && (connection.jingle.localAudio || connection.jingle.localVideo)) {
|
|
171
|
+ doJoin();
|
|
172
|
+ }
|
171
|
173
|
}
|
172
|
174
|
|
173
|
|
-function videoStreamFailed(error) {
|
174
|
|
- console.warn("Failed to obtain video stream - continue anyway", error);
|
175
|
|
-
|
176
|
|
- doJoin();
|
177
|
|
-}
|
178
|
175
|
|
179
|
176
|
function doJoin() {
|
180
|
177
|
var roomnode = null;
|