diff --git a/api.php b/api.php index 89952c2..3b233b1 100644 --- a/api.php +++ b/api.php @@ -1,9 +1,9 @@ @@ -15,7 +15,7 @@ require_once 'download.php'; if (isset($_GET["url"])) { if (isset($_GET["format"]) || isset($_GET['audio'])) { $video = VideoDownload::getJSON($_GET["url"], $_GET["format"]); - + if (isset($video->url)) { //Vimeo needs a correct user-agent $UA = VideoDownload::getUA(); @@ -57,7 +57,7 @@ if (isset($_GET["url"])) { ); exit; } - + } else { if (isset($_GET['audio'])) { header( @@ -135,12 +135,12 @@ if (isset($_GET["url"])) { include 'logo.php'; ?>

You are going to download - + title; - ?>.

+ ?>. Google Cast™ is disabledGoogle Cast™Casting to ChromeCast…

thumbnail, '" alt="" />'; ?>
@@ -184,7 +184,7 @@ if (isset($_GET["url"])) { $error=true; } } -} +} if (isset($error)) { include 'head.php'; ?> diff --git a/cast.js b/cast.js new file mode 100644 index 0000000..d406aa6 --- /dev/null +++ b/cast.js @@ -0,0 +1,90 @@ +/*global chrome*/ +/*jslint devel: true, browser: true */ +var launchBtn, disabledBtn, stopBtn; +var session, currentMedia; + +function receiverListener() { + 'use strict'; + console.log('receiverListener'); +} + +function sessionListener() { + 'use strict'; + console.log('sessionListener'); +} + +function onMediaDiscovered(how, media) { + 'use strict'; + currentMedia = media; +} + +function onMediaError() { + 'use strict'; + console.log('onMediaError'); + stopCast(); +} + +function onRequestSessionSuccess(e) { + 'use strict'; + session = e; + var videoLink = document.getElementById('video_link'), videoURL = videoLink.dataset.video, mediaInfo = new chrome.cast.media.MediaInfo(videoURL, 'video/' + videoLink.dataset.ext), request = new chrome.cast.media.LoadRequest(mediaInfo); + stopBtn.classList.remove('cast_hidden'); + launchBtn.classList.add('cast_hidden'); + session.loadMedia(request, onMediaDiscovered.bind(this, 'loadMedia'), onMediaError); +} + +function onLaunchError() { + 'use strict'; + console.log('onLaunchError'); +} + +function onInitSuccess() { + 'use strict'; + chrome.cast.requestSession(onRequestSessionSuccess, onLaunchError); +} + +function onError() { + 'use strict'; + console.log('onError'); +} + +function onStopCast() { + 'use strict'; + stopBtn.classList.add('cast_hidden'); + launchBtn.classList.remove('cast_hidden'); +} + +function launchCast() { + 'use strict'; + var sessionRequest = new chrome.cast.SessionRequest(chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID), apiConfig = new chrome.cast.ApiConfig(sessionRequest, sessionListener, receiverListener, chrome.cast.AutoJoinPolicy.PAGE_SCOPED); + chrome.cast.initialize(apiConfig, onInitSuccess, onError); +} + +function stopCast() { + 'use strict'; + session.stop(onStopCast); +} + +function initializeCastApi() { + 'use strict'; + launchBtn = document.getElementById('cast_btn_launch'); + disabledBtn = document.getElementById('cast_disabled'); + stopBtn = document.getElementById('cast_btn_stop'); + if (launchBtn) { + disabledBtn.classList.add('cast_hidden'); + launchBtn.classList.remove('cast_hidden'); + launchBtn.addEventListener('click', launchCast, false); + stopBtn.addEventListener('click', stopCast, false); + } +} + +function loadCastApi(loaded, errorInfo) { + 'use strict'; + if (loaded) { + initializeCastApi(); + } else { + console.log(errorInfo); + } +} + +window['__onGCastApiAvailable'] = loadCastApi; diff --git a/head.php b/head.php index 40dbf08..1ecc7e0 100644 --- a/head.php +++ b/head.php @@ -21,6 +21,8 @@ href="https://fonts.googleapis.com/css?family=Open+Sans:400,300" /> + + diff --git a/img/ic_media_route_disabled_holo_light.png b/img/ic_media_route_disabled_holo_light.png new file mode 100644 index 0000000..319c57e Binary files /dev/null and b/img/ic_media_route_disabled_holo_light.png differ diff --git a/img/ic_media_route_off_holo_light.png b/img/ic_media_route_off_holo_light.png new file mode 100644 index 0000000..b74cdb5 Binary files /dev/null and b/img/ic_media_route_off_holo_light.png differ diff --git a/img/ic_media_route_on_holo_light.png b/img/ic_media_route_on_holo_light.png new file mode 100644 index 0000000..c49f2d0 Binary files /dev/null and b/img/ic_media_route_on_holo_light.png differ diff --git a/style.css b/style.css index dede1c2..7dde14e 100644 --- a/style.css +++ b/style.css @@ -526,6 +526,18 @@ h1 { max-width:700px; } +.cast_btn { + cursor:pointer; +} + +.cast_hidden { + display:none; +} + +.cast_icon { + vertical-align:middle; +} + @media (max-width: 640px) { .thumb { width:90%;