From 9d9f7f3d4d65b8bb5f5cc39861ca86c00f7ccdb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Fri, 18 Nov 2016 10:42:55 +0100 Subject: [PATCH] Starting add of custom receiver app --- .htaccess | 3 ++ receiver/index.html | 14 +++++++++ receiver/receiver.js | 75 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 92 insertions(+) create mode 100644 receiver/index.html create mode 100644 receiver/receiver.js diff --git a/.htaccess b/.htaccess index 64caf4ed..5311b295 100755 --- a/.htaccess +++ b/.htaccess @@ -13,6 +13,9 @@ RewriteCond %{HTTP_HOST} ^remote.zoff.no RewriteCond %{REQUEST_URI} !/static RewriteRule ^(.*)$ php/controller.php [L,NC,QSA] +RewriteCond %{HTTP_HOST} ^cast.zoff.no +RewriteRule ^(.*)$ receiver/ [L,NC,QSA] + RewriteCond %{HTTP_HOST} ^bot.zoff.no RewriteCond %{REQUEST_URI} !/static RewriteRule ^(.*)$ php/bot.php [L,NC,QSA] diff --git a/receiver/index.html b/receiver/index.html new file mode 100644 index 00000000..1520515d --- /dev/null +++ b/receiver/index.html @@ -0,0 +1,14 @@ + + + + + + + + +
+
+
+ + diff --git a/receiver/receiver.js b/receiver/receiver.js new file mode 100644 index 00000000..21234084 --- /dev/null +++ b/receiver/receiver.js @@ -0,0 +1,75 @@ +var receiver = new cast.receiver.Receiver("E6856E24", ["no.zoff.customcast"],"",5); +var ytChannelHandler = new cast.receiver.ChannelHandler(cfg.msgNamespace); +var nextVideo; +ytChannelHandler.addChannelFactory(receiver.createChannelFactory(cfg.msgNamespace)); +ytChannelHandler.addEventListener( + cast.receiver.Channel.EventType.MESSAGE, + onMessage.bind(this) +); + +receiver.start(); + +window.addEventListener('load', function() { + var tag = document.createElement('script'); + tag.src = "https://www.youtube.com/iframe_api"; + var firstScriptTag = document.getElementsByTagName('script')[0]; + firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); +}); + +ytMessages={ + "getNextVideo": function(event) { + nextVideo=event.message.videoId; + }, + "loadVideo": function(event) { + player.loadVideoById(event.message.videoId); + }, + "stopCasting": function() { + endcast(); + }, + "playVideo": function() { + player.playVideo(); + }, + "pauseVideo": function() { + player.pauseVideo(); + }, + "stopVideo": function() { + player.stopVideo(); + }, + "seekTo": function(event) { + player.seekTo(event.message.seekTo) + }, + "getStatus": function() { + channel.send({'event':'statusCheck','message':player.getPlayerState()}); + } +}; + +function onYouTubeIframeAPIReady() { + player = new YT.Player('player', { + height: 562, + width: 1000, + playerVars: { 'autoplay': 0, 'controls': 0 }, + events: { + 'onReady': onPlayerReady, + 'onStateChange': onPlayerStateChange + } + }); +} + +function onPlayerReady() { + channel.send({'event':'iframeApiReady','message':'ready'}); +} + +function onPlayerStateChange(event) { + channel.send({'event':'stateChange','message':event.data}); + /*if (event.data==YT.PlayerState.ENDED) { + endcast(); + }*/ +} + + function onMessage(event) { + ytMessages[event.message.type](event); + } + + function endcast() { + setTimeout(window.close, 2000); + }