summaryrefslogtreecommitdiff
path: root/js/app
diff options
context:
space:
mode:
Diffstat (limited to 'js/app')
-rw-r--r--js/app/live-video.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/js/app/live-video.js b/js/app/live-video.js
new file mode 100644
index 0000000..f39e801
--- /dev/null
+++ b/js/app/live-video.js
@@ -0,0 +1,44 @@
+var websocket_server = null;
+if(window.location.protocol === 'http:')
+ websocket_server = "ws://" + window.location.hostname + "/janus-ws";
+else
+ websocket_server = "wss://" + window.location.hostname + "/janus-ws";
+
+var janus = null;
+var streaming = null;
+
+Janus.init({callback: function() {
+ janus = new Janus(
+ {
+ server: [websocket_server, "/janus"],
+ iceServers: [{url: "turn:turn.homebase.dk", username: "myturn", credential: "notsecure"}],
+ ipv6: false,
+ success: function() {
+ janus.attach(
+ {
+ plugin: "janus.plugin.streaming",
+ opaqueId: "streaming-"+Janus.randomString(12),
+ success: function(pluginHandle) {
+ streaming = pluginHandle;
+ streaming.send({"message": { "request": "watch", id: 1}});
+ },
+ onmessage: function(msg, jsep) {
+ if(jsep !== undefined && jsep !== null) {
+ streaming.createAnswer(
+ {
+ jsep: jsep,
+ media: { audioSend: false, videoSend: false },
+ success: function(jsep) {
+ var body = { "request": "start" };
+ streaming.send({"message": body, "jsep": jsep});
+ },
+ });
+ }
+ },
+ onremotestream: function(stream) {
+ Janus.attachMediaStream(document.getElementById('live-video'), stream);
+ },
+ });
+ },
+ });
+}});