Add Jitsi Meet iframe
This commit is contained in:
parent
ce0c24a8fb
commit
1beac8a881
|
@ -0,0 +1,102 @@
|
|||
<html itemscope itemtype="http://schema.org/Product" prefix="og: http://ogp.me/ns#" xmlns="http://www.w3.org/1999/html">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<style>
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.row {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
/* Clear floats after the columns */
|
||||
.row:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
</style>
|
||||
<script src="https://meet.jit.si/external_api.js"></script> <!-- Include the script from here. It should be included in your jitsi installation. -->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="row">
|
||||
<div id=meet></div>
|
||||
</div>
|
||||
</body>
|
||||
<script>
|
||||
const domain = "meet.jit.si"; //Here goes your domain where the meeting takes place.
|
||||
var isStreamOn = false; //This is a variable I've defined to use later.
|
||||
const options = {
|
||||
roomName: "Coacecursolod", //This is the name of the room. Quite obvious.
|
||||
width: 800, //Well, you know.
|
||||
height: 480, //Same as above, just vertical.
|
||||
parentNode: document.querySelector('#meet') //Now, you declare here which element should parent your stream.
|
||||
}
|
||||
const api = new JitsiMeetExternalAPI(domain, options); //This is where the iframe is actually constructed
|
||||
//The function below turns on the Tile View everytime a participant joins. Practically it makes Tile View the default mode
|
||||
api.addEventListener(`videoConferenceJoined`, () => {
|
||||
const listener = ({ enabled }) => {
|
||||
api.removeEventListener(`tileViewChanged`, listener);
|
||||
|
||||
if (!enabled) {
|
||||
api.executeCommand(`toggleTileView`);
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
|
||||
|
||||
function streamHandler() {
|
||||
try {
|
||||
if (!isStreamOn) {
|
||||
document.getElementById("streamingResponseMsg").innerHTML = "Starting streaming...";
|
||||
//The function below starts the stream or recording, according to its "mode"
|
||||
api.executeCommand('startRecording', {
|
||||
mode: 'stream', //recording mode, either `file` or `stream`.
|
||||
rtmpStreamKey: '', //This where you *should* put your favoured rtmp stream server along with your key, like "rtmp:\/\/some.address/norecord/stream-key"
|
||||
youtubeStreamKey: 'rtmp:\/\/some.address/norecord/stream-key', //the youtube stream key.
|
||||
});
|
||||
} else {
|
||||
document.getElementById("streamingResponseMsg").innerHTML = "Stopping streaming...";
|
||||
//The function below stops the stream or recording, according to the string you pass. Official guide shows an object, while it should be a string
|
||||
api.executeCommand('stopRecording', 'stream');
|
||||
}
|
||||
|
||||
}
|
||||
catch (e){
|
||||
if (isStreamOn){
|
||||
document.getElementById("streamingResponseMsg").innerHTML = "Error while stopping stream.";
|
||||
console.log("Exception while stopping stream.", e);
|
||||
}else{
|
||||
document.getElementById("streamingResponseMsg").innerHTML = "Error while starting stream.";
|
||||
console.log("Exception while starting stream.", e);
|
||||
|
||||
}
|
||||
this.isStreamOn = false;
|
||||
}
|
||||
};
|
||||
//This part doesn't work without making some changes to the code as per this; https://github.com/team-ai-repo/jitsi-meet/pull/4/files
|
||||
api.addEventListener("recordingStarted", () => {
|
||||
document.getElementById("stream-btn").innerHTML="Stop Streaming";
|
||||
document.getElementById("streamingResponseMsg").innerHTML = "Stream is on";
|
||||
this.isStreamOn = true;
|
||||
console.log("Example Stream On", this.isStreamOn);
|
||||
});
|
||||
|
||||
api.addEventListener("recordingStopped", () => {
|
||||
document.getElementById("stream-btn").innerHTML="Start Streaming";
|
||||
document.getElementById("streamingResponseMsg").innerHTML = "Stream is off";
|
||||
console.log("Example Stream Off", this.isStreamOn);
|
||||
this.isStreamOn = false;
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
</html>
|
Loading…
Reference in New Issue