Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Webcam = {
- $closeButton: $(".close-view"),
- connection: new RTCMultiConnection(),
- listOfStreamReceivers: {},
- $onButton: $(".webcam-on"),
- $webcamStreamDiv: $(".webcam-stream"),
- stream: {},
- closeCam: function(){
- //Remove selected user on closing cam...
- if(Webcam.stream[Chat.myNickname] && Chat.myNickname === Webcam.stream[Chat.myNickname].userid){
- console.log("wanneer")
- Webcam.connection.attachStreams.forEach(function(stream) {
- var obj = {
- nickname: Chat.myNickname,
- status: "off"
- };
- Chat.sendCommand(ChatEvent.WEBCAM, obj)
- stream.stop();
- });
- Webcam.$onButton.removeClass("cam-on")
- } else {
- ChatInitials.selectHandler($("[id='" + Userlist.selectedUser + "']"))
- Webcam.connection.close()
- }
- $("#webcam").dialog("close");
- //Webcam.remove()
- // Webcam.$onButton.removeClass("cam-on")
- // ChatInitials.selectHandler($("[id='" + Userlist.selectedUser + "']"))
- // Webcam.connection.close()
- },
- events: function(){
- Webcam.connection.beforeAddingStream = function(stream, peer) {
- var remoteUserExtra = peer.userid;
- Webcam.listOfStreamReceivers[remoteUserExtra] = peer;
- Webcam.updateViewers()
- return stream;
- };
- Webcam.$onButton.on("click", function(){
- Webcam.goLive()
- }),
- $(Webcam.$closeButton).on("click", function(){
- Webcam.closeCam()
- }),
- Webcam.connection.onleave = function(evt) {
- console.log("ON LEAVE")
- console.log("Deleting " + evt.userid)
- delete Webcam.listOfStreamReceivers[evt.userid]
- Webcam.updateViewers()
- },
- Webcam.connection.onstream = function(event) {
- Webcam.onStream(event)
- },
- Webcam.connection.onUserStatusChanged = function(status) {
- console.log("onUserStatusChanged")
- };
- },
- getCamStatus: function(user){
- var userCam;
- $.each(Userlist.users, function(i, data){
- var nickname = data.getAttribute("name"),
- camStatus = data.getAttribute("webcam");
- if(user && user === nickname)
- userCam = camStatus === "live"
- })
- return userCam;
- },
- getSelectedCam: function(){
- // If user has webcam
- console.log(Webcam.getStream(Userlist.selectedUser))
- Webcam.setHeaders(Userlist.selectedUser)
- Webcam.$webcamStreamDiv.html(Webcam.getStream(Userlist.selectedUser).mediaElement)
- setTimeout(function() {
- Webcam.getStream(Userlist.selectedUser).mediaElement.play();
- }, 500);
- },
- getStatus: function(user){
- var userCam;
- $.each(Userlist.users, function(i, data){
- var nickname = data.getAttribute("name"),
- camStatus = data.getAttribute("webcam");
- if(user && user === nickname)
- userCam = camStatus === "live"
- })
- return userCam;
- },
- getStream: function(nickname){
- console.log("getting stream")
- var key = Object.keys(Webcam.connection.streamEvents).find(function(key){
- var evt = Webcam.connection.streamEvents[key];
- return evt.userid === nickname
- })
- return Webcam.connection.streamEvents[key]
- },
- goLive: function(){
- console.log("Go live")
- if(Webcam.getStatus(Chat.myNickname)){
- Webcam.closeCam()
- } else {
- Webcam.$onButton.addClass("cam-on")
- Webcam.connection.open(Chat.myNickname, function(){
- var obj = {
- nickname: Chat.myNickname,
- status: "live"
- };
- Chat.sendCommand(ChatEvent.WEBCAM, obj)
- $(".on-air").fadeIn()
- Webcam.setHeaders(Chat.myNickname)
- Webcam.$webcamStreamDiv.html(Webcam.getStream(Chat.myNickname).mediaElement)
- setTimeout(function() {
- Webcam.getStream(Chat.myNickname).mediaElement.play();
- Webcam.updateViewers()
- }, 500);
- })
- }
- },
- init: function(){
- Webcam.settings();
- Webcam.events();
- Webcam.connection.connect();
- },
- joinCam: function(user){
- // Webcam.connection.sdpConstraints.mandatory = {
- // OfferToReceiveAudio: false,
- // OfferToReceiveVideo: true
- // };
- Webcam.connection.leave()
- Webcam.setHeaders(user)
- Webcam.connection.join(user)
- },
- onStream: function(event){
- // console.log("on stream!")
- //Save user own stream event
- // Webcam.stream[event.userid] = event;
- // $("#webcam").fadeIn("slow")
- // Webcam.$webcamStreamDiv.empty()
- // if(event.type === "local"){
- // Webcam.setHeaders(Chat.myNickname)
- // } else {
- // Webcam.setHeaders(Userlist.selectedUser)
- // }
- //$(".users").css("height", "55%")
- // Webcam.$webcamStreamDiv.append(event.mediaElement)
- // setTimeout(function() {
- // event.mediaElement.play();
- // Webcam.updateViewers()
- // }, 500);
- },
- remove: function(){
- //$("#webcam").empty();
- //$(".users").css("height", "90%")
- $(".on-air").fadeOut()
- //$(".webcam-header").fadeOut("fast")
- Webcam.$webcamStreamDiv.empty()
- $(".viewers").empty();
- },
- setHeaders: function(user){
- $(".dialog-header").empty()
- $("#webcam").dialog({
- closeText: "",
- open: function(){
- $(".ui-dialog-titlebar-close").addClass("ct icon-cancel");
- },
- close: function(){
- Webcam.closeCam()
- }
- });
- var dialogHeader = $("<span />", {
- class: "dialog-header"
- }),
- dialogTitleStatus = $("<span />", {
- class: "status ct icon-isight",
- html: "LIVE"
- }),
- dialogTitleUsername = $("<span />", {
- class: "header-name",
- html: user
- });
- dialogHeader.append(dialogTitleStatus, dialogTitleUsername)
- $(".ui-dialog-titlebar").append(dialogHeader);
- // $(".header-name").html(user),
- // $(".status").addClass("ct icon-isight").html("LIVE")
- },
- setLiveIcon: function(nick, webcam){
- var findUser = nick ? $("[id='" + nick + "']") : $("[id='" + Chat.myNickname + "']");
- if(webcam === "live"){
- findUser.append($("<div />", {
- class: "webcam-live ct icon-isight",
- html: "LIVE"
- }));
- }
- },
- settings: function(){
- Webcam.connection.channel = 'ascsuahdaushdu';
- Webcam.connection.socketURL = "https://rtcmulticonnection.herokuapp.com:443/";
- Webcam.connection.socketMessageEvent = 'webcam';
- Webcam.connection.userid = Chat.myNickname;
- Webcam.connection.extra = {
- nickname: Chat.myNickname
- };
- Webcam.connection.session = {
- audio: false,
- video: true,
- oneway: true
- }
- Webcam.connection.enableLogs = false;
- },
- updateViewers: function(){
- var array = Object.keys(Webcam.listOfStreamReceivers);
- console.log('number of receivers', array.length);
- array.forEach(function(key) {
- var peer = Webcam.listOfStreamReceivers[key];
- var userid = peer.userid;
- var extra = peer.extra;
- console.log(userid);
- });
- console.log(Webcam.getStatus(Chat.myNickname))
- if(Webcam.getStatus(Chat.myNickname)){
- var kijkers = array.length <= 1 ? kijkers = " kijker" : kijkers = " kijkers",
- aantal = array.length === 0 ? aantal = "geen " : aantal = "(" + array.length + ")";
- console.log(aantal + kijkers)
- $(".viewers").html(aantal + kijkers)
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement