Pārlūkot izejas kodu

Adds example HTML page that creates basic video conference.

dev1
hristoterezov 10 gadus atpakaļ
vecāks
revīzija
d3eb708ee2
2 mainītis faili ar 131 papildinājumiem un 0 dzēšanām
  1. 114
    0
      doc/exmaple/example.js
  2. 17
    0
      doc/exmaple/index.html

+ 114
- 0
doc/exmaple/example.js Parādīt failu

1
+var options = {
2
+    hosts: {
3
+        domain: 'hristo.jitsi.net',
4
+        muc: 'conference.hristo.jitsi.net', // FIXME: use XEP-0030
5
+        bridge: 'jitsi-videobridge.hristo.jitsi.net', // FIXME: use XEP-0030
6
+    },
7
+    bosh: '//hristo.jitsi.net/http-bind', // FIXME: use xep-0156 for that
8
+    clientNode: 'http://jitsi.org/jitsimeet' // The name of client node advertised in XEP-0115 'c' stanza
9
+};
10
+
11
+var confOptions = {
12
+    openSctp: true
13
+}
14
+
15
+/**
16
+ * Handles local tracks.
17
+ * @param tracks Array with JitsiTrack objects
18
+ */
19
+function onLocalTracks(tracks)
20
+{
21
+    localTracks = tracks;
22
+    console.log(tracks);
23
+    tracks[0].attach($("#localAudio"));
24
+    tracks[1].attach($("#localVideo"));
25
+}
26
+
27
+/**
28
+ * Handles remote tracks
29
+ * @param track JitsiTrack object
30
+ */
31
+function onRemoteTrack(track) {
32
+    var participant = track.getParitcipantId();
33
+    if(!remoteTracks[participant])
34
+        remoteTracks[participant] = [];
35
+    remoteTracks[participant].push(track);
36
+    var id = participant + track.getType();
37
+    if(track.getType() == "video") {
38
+        $("body").append("<video autoplay='1' id='" + participant + "video' />");
39
+    } else {
40
+        $("body").append("<audio autoplay='1' id='" + participant + "audio' />");
41
+    }
42
+    track.attach($("#" + id));
43
+}
44
+
45
+/**
46
+ * That function is executed when the conference is joined
47
+ */
48
+function onConferenceJoined () {
49
+    for(var i = 0; i < localTracks.length; i++)
50
+    {
51
+        localTracks[i].start();
52
+    }
53
+}
54
+
55
+function onUserLeft(id) {
56
+    if(!remoteTracks[id])
57
+        return;
58
+    var tracks = remoteTracks[id];
59
+    for(var i = 0; i< tracks.length; i++)
60
+        tracks[i].detach($("#" + id + tracks[i].getType()))
61
+}
62
+
63
+/**
64
+ * That function is called when connection is established successfully
65
+ */
66
+function onConnectionSuccess(){
67
+    room = connection.initJitsiConference("conference1", confOptions);
68
+    room.createLocalTracks().then(onLocalTracks);
69
+    room.on(JitsiMeetJS.events.conference.TRACK_ADDED, onRemoteTrack);
70
+    room.on(JitsiMeetJS.events.conference.CONFERENCE_JOINED, onConferenceJoined);
71
+    room.on(JitsiMeetJS.events.conference.USER_JOINED, function(id){ remoteTracks[id] = [];});
72
+    room.on(JitsiMeetJS.events.conference.USER_LEFT, onUserLeft);
73
+    room.join();
74
+};
75
+
76
+/**
77
+ * This function is called when the connection fail.
78
+ */
79
+function onConnectionFailed(){console.error("Connection Failed!")};
80
+
81
+/**
82
+ * This function is called when we disconnect.
83
+ */
84
+function disconnect(){
85
+    console.log("disconnect!");
86
+    connection.removeEventListener(JitsiMeetJS.events.connection.CONNECTION_ESTABLISHED, onConnectionSuccess);
87
+    connection.removeEventListener(JitsiMeetJS.events.connection.CONNECTION_FAILED, onConnectionFailed);
88
+    connection.removeEventListener(JitsiMeetJS.events.connection.CONNECTION_DISCONNECTED, disconnect);
89
+}
90
+
91
+function unload() {
92
+//    room.leave();
93
+    connection.disconnect();
94
+}
95
+
96
+$(window).bind('beforeunload', unload);
97
+$(window).bind('unload', unload);
98
+
99
+JitsiMeetJS.init();
100
+var connection = new JitsiMeetJS.JitsiConnection(null, null, options);
101
+
102
+var room = null;
103
+var localTracks = [];
104
+var remoteTracks = {};
105
+
106
+connection.addEventListener(JitsiMeetJS.events.connection.CONNECTION_ESTABLISHED, onConnectionSuccess);
107
+connection.addEventListener(JitsiMeetJS.events.connection.CONNECTION_FAILED, onConnectionFailed);
108
+connection.addEventListener(JitsiMeetJS.events.connection.CONNECTION_DISCONNECTED, disconnect);
109
+
110
+connection.connect();
111
+
112
+
113
+
114
+

+ 17
- 0
doc/exmaple/index.html Parādīt failu

1
+<!DOCTYPE html>
2
+<html>
3
+<head lang="en">
4
+    <meta charset="UTF-8">
5
+    <title></title>
6
+    <script src="../libs/jquery-2.1.1.min.js"></script>
7
+    <script src="../libs/strophe/strophe.js"></script>
8
+    <script src="../libs/strophe/strophe.disco.min.js?v=1"></script>
9
+    <script src="../libs/strophe/strophe.caps.jsonly.min.js?v=1"></script>
10
+    <script src="../lib-jitsi-meet.js"></script>
11
+    <script src="example.js" ></script>
12
+</head>
13
+<body>
14
+    <video id="localVideo" autoplay="true"></video>
15
+    <audio id="localAudio" autoplay="true"></audio>
16
+</body>
17
+</html>

Notiek ielāde…
Atcelt
Saglabāt