Advertisement
Guest User

Untitled

a guest
Mar 24th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.82 KB | None | 0 0
  1. Webcam = {
  2. $closeButton: $(".close-view"),
  3. connection: new RTCMultiConnection(),
  4. listOfStreamReceivers: {},
  5. $onButton: $(".webcam-on"),
  6. $webcamStreamDiv: $(".webcam-stream"),
  7. stream: {},
  8. closeCam: function(){
  9. //Remove selected user on closing cam...
  10. if(Webcam.stream[Chat.myNickname] && Chat.myNickname === Webcam.stream[Chat.myNickname].userid){
  11. console.log("wanneer")
  12. Webcam.connection.attachStreams.forEach(function(stream) {
  13. var obj = {
  14. nickname: Chat.myNickname,
  15. status: "off"
  16. };
  17. Chat.sendCommand(ChatEvent.WEBCAM, obj)
  18. stream.stop();
  19. });
  20. Webcam.$onButton.removeClass("cam-on")
  21. } else {
  22. ChatInitials.selectHandler($("[id='" + Userlist.selectedUser + "']"))
  23. Webcam.connection.close()
  24. }
  25. $("#webcam").dialog("close");
  26. //Webcam.remove()
  27. // Webcam.$onButton.removeClass("cam-on")
  28. // ChatInitials.selectHandler($("[id='" + Userlist.selectedUser + "']"))
  29. // Webcam.connection.close()
  30. },
  31. events: function(){
  32. Webcam.connection.beforeAddingStream = function(stream, peer) {
  33. var remoteUserExtra = peer.userid;
  34. Webcam.listOfStreamReceivers[remoteUserExtra] = peer;
  35.  
  36. Webcam.updateViewers()
  37. return stream;
  38. };
  39. Webcam.$onButton.on("click", function(){
  40. Webcam.goLive()
  41. }),
  42. $(Webcam.$closeButton).on("click", function(){
  43. Webcam.closeCam()
  44. }),
  45. Webcam.connection.onleave = function(evt) {
  46. console.log("ON LEAVE")
  47. console.log("Deleting " + evt.userid)
  48. delete Webcam.listOfStreamReceivers[evt.userid]
  49. Webcam.updateViewers()
  50. },
  51. Webcam.connection.onstream = function(event) {
  52. Webcam.onStream(event)
  53. },
  54. Webcam.connection.onUserStatusChanged = function(status) {
  55. console.log("onUserStatusChanged")
  56. };
  57. },
  58. getCamStatus: function(user){
  59. var userCam;
  60. $.each(Userlist.users, function(i, data){
  61. var nickname = data.getAttribute("name"),
  62. camStatus = data.getAttribute("webcam");
  63.  
  64. if(user && user === nickname)
  65. userCam = camStatus === "live"
  66. })
  67. return userCam;
  68. },
  69. getSelectedCam: function(){
  70. // If user has webcam
  71. console.log(Webcam.getStream(Userlist.selectedUser))
  72. Webcam.setHeaders(Userlist.selectedUser)
  73. Webcam.$webcamStreamDiv.html(Webcam.getStream(Userlist.selectedUser).mediaElement)
  74. setTimeout(function() {
  75. Webcam.getStream(Userlist.selectedUser).mediaElement.play();
  76. }, 500);
  77. },
  78. getStatus: function(user){
  79. var userCam;
  80. $.each(Userlist.users, function(i, data){
  81. var nickname = data.getAttribute("name"),
  82. camStatus = data.getAttribute("webcam");
  83.  
  84. if(user && user === nickname)
  85. userCam = camStatus === "live"
  86. })
  87. return userCam;
  88. },
  89. getStream: function(nickname){
  90. console.log("getting stream")
  91. var key = Object.keys(Webcam.connection.streamEvents).find(function(key){
  92. var evt = Webcam.connection.streamEvents[key];
  93. return evt.userid === nickname
  94. })
  95. return Webcam.connection.streamEvents[key]
  96. },
  97. goLive: function(){
  98. console.log("Go live")
  99. if(Webcam.getStatus(Chat.myNickname)){
  100. Webcam.closeCam()
  101. } else {
  102. Webcam.$onButton.addClass("cam-on")
  103. Webcam.connection.open(Chat.myNickname, function(){
  104. var obj = {
  105. nickname: Chat.myNickname,
  106. status: "live"
  107. };
  108. Chat.sendCommand(ChatEvent.WEBCAM, obj)
  109. $(".on-air").fadeIn()
  110. Webcam.setHeaders(Chat.myNickname)
  111. Webcam.$webcamStreamDiv.html(Webcam.getStream(Chat.myNickname).mediaElement)
  112.  
  113. setTimeout(function() {
  114. Webcam.getStream(Chat.myNickname).mediaElement.play();
  115. Webcam.updateViewers()
  116. }, 500);
  117. })
  118. }
  119.  
  120. },
  121. init: function(){
  122. Webcam.settings();
  123. Webcam.events();
  124. Webcam.connection.connect();
  125. },
  126. joinCam: function(user){
  127. // Webcam.connection.sdpConstraints.mandatory = {
  128. // OfferToReceiveAudio: false,
  129. // OfferToReceiveVideo: true
  130. // };
  131. Webcam.connection.leave()
  132. Webcam.setHeaders(user)
  133. Webcam.connection.join(user)
  134. },
  135. onStream: function(event){
  136. // console.log("on stream!")
  137. //Save user own stream event
  138. // Webcam.stream[event.userid] = event;
  139.  
  140. // $("#webcam").fadeIn("slow")
  141. // Webcam.$webcamStreamDiv.empty()
  142. // if(event.type === "local"){
  143. // Webcam.setHeaders(Chat.myNickname)
  144. // } else {
  145. // Webcam.setHeaders(Userlist.selectedUser)
  146. // }
  147.  
  148. //$(".users").css("height", "55%")
  149. // Webcam.$webcamStreamDiv.append(event.mediaElement)
  150.  
  151. // setTimeout(function() {
  152. // event.mediaElement.play();
  153. // Webcam.updateViewers()
  154. // }, 500);
  155.  
  156.  
  157. },
  158. remove: function(){
  159. //$("#webcam").empty();
  160. //$(".users").css("height", "90%")
  161. $(".on-air").fadeOut()
  162. //$(".webcam-header").fadeOut("fast")
  163. Webcam.$webcamStreamDiv.empty()
  164. $(".viewers").empty();
  165. },
  166. setHeaders: function(user){
  167. $(".dialog-header").empty()
  168. $("#webcam").dialog({
  169. closeText: "",
  170. open: function(){
  171. $(".ui-dialog-titlebar-close").addClass("ct icon-cancel");
  172. },
  173. close: function(){
  174. Webcam.closeCam()
  175. }
  176. });
  177.  
  178. var dialogHeader = $("<span />", {
  179. class: "dialog-header"
  180. }),
  181. dialogTitleStatus = $("<span />", {
  182. class: "status ct icon-isight",
  183. html: "LIVE"
  184. }),
  185. dialogTitleUsername = $("<span />", {
  186. class: "header-name",
  187. html: user
  188. });
  189. dialogHeader.append(dialogTitleStatus, dialogTitleUsername)
  190. $(".ui-dialog-titlebar").append(dialogHeader);
  191.  
  192. // $(".header-name").html(user),
  193. // $(".status").addClass("ct icon-isight").html("LIVE")
  194. },
  195. setLiveIcon: function(nick, webcam){
  196. var findUser = nick ? $("[id='" + nick + "']") : $("[id='" + Chat.myNickname + "']");
  197.  
  198. if(webcam === "live"){
  199. findUser.append($("<div />", {
  200. class: "webcam-live ct icon-isight",
  201. html: "LIVE"
  202. }));
  203. }
  204. },
  205. settings: function(){
  206. Webcam.connection.channel = 'ascsuahdaushdu';
  207. Webcam.connection.socketURL = "https://rtcmulticonnection.herokuapp.com:443/";
  208. Webcam.connection.socketMessageEvent = 'webcam';
  209.  
  210. Webcam.connection.userid = Chat.myNickname;
  211. Webcam.connection.extra = {
  212. nickname: Chat.myNickname
  213. };
  214.  
  215. Webcam.connection.session = {
  216. audio: false,
  217. video: true,
  218. oneway: true
  219. }
  220. Webcam.connection.enableLogs = false;
  221. },
  222. updateViewers: function(){
  223. var array = Object.keys(Webcam.listOfStreamReceivers);
  224.  
  225. console.log('number of receivers', array.length);
  226.  
  227. array.forEach(function(key) {
  228. var peer = Webcam.listOfStreamReceivers[key];
  229.  
  230. var userid = peer.userid;
  231. var extra = peer.extra;
  232.  
  233. console.log(userid);
  234.  
  235. });
  236. console.log(Webcam.getStatus(Chat.myNickname))
  237. if(Webcam.getStatus(Chat.myNickname)){
  238. var kijkers = array.length <= 1 ? kijkers = " kijker" : kijkers = " kijkers",
  239. aantal = array.length === 0 ? aantal = "geen " : aantal = "(" + array.length + ")";
  240.  
  241.  
  242. console.log(aantal + kijkers)
  243.  
  244.  
  245. $(".viewers").html(aantal + kijkers)
  246. }
  247. }
  248. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement