74 lines
1.9 KiB
JavaScript
74 lines
1.9 KiB
JavaScript
var applicationID = '81585E3E';
|
|
var namespace = 'urn:x-cast:com.jrk.obscreen';
|
|
var session = null;
|
|
|
|
if (!chrome.cast || !chrome.cast.isAvailable) {
|
|
setTimeout(initializeCastApi, 1000);
|
|
}
|
|
|
|
function initializeCastApi() {
|
|
var sessionRequest = new chrome.cast.SessionRequest(applicationID);
|
|
var apiConfig = new chrome.cast.ApiConfig(sessionRequest,
|
|
sessionListener,
|
|
receiverListener);
|
|
|
|
chrome.cast.initialize(apiConfig, onInitSuccess, onError);
|
|
}
|
|
|
|
function onInitSuccess() {
|
|
// console.log('onInitSuccess');
|
|
}
|
|
|
|
function onError(message) {
|
|
console.error('onError: ' + JSON.stringify(message));
|
|
}
|
|
|
|
function onSuccess(message) {
|
|
// console.log('onSuccess: ' + JSON.stringify(message));
|
|
}
|
|
|
|
// function onStopAppSuccess() {
|
|
// console.log('onStopAppSuccess');
|
|
// }
|
|
|
|
function sessionListener(e) {
|
|
console.log('New session ID: ' + e.sessionId);
|
|
session = e;
|
|
session.addUpdateListener(sessionUpdateListener);
|
|
}
|
|
|
|
function sessionUpdateListener(isAlive) {
|
|
console.log((isAlive ? 'Session Updated' : 'Session Removed') + ': ' + session.sessionId);
|
|
if (!isAlive) {
|
|
session = null;
|
|
}
|
|
}
|
|
|
|
function receiverListener(e) {
|
|
// Due to API changes just ignore this.
|
|
}
|
|
|
|
function sendMessage(message) {
|
|
if (session != null) {
|
|
session.sendMessage(namespace, message, onSuccess.bind(this, message), onError);
|
|
} else {
|
|
chrome.cast.requestSession(function (e) {
|
|
session = e;
|
|
sessionListener(e);
|
|
session.sendMessage(namespace, message, onSuccess.bind(this, message), onError);
|
|
}, onError);
|
|
}
|
|
}
|
|
|
|
// function stopApp() {
|
|
// session.stop(onStopAppSuccess, onError);
|
|
// }
|
|
|
|
jQuery(function ($) {
|
|
$(document).on('click', '.cast-url', function () {
|
|
sendMessage({
|
|
type: 'load',
|
|
url: $('#' + $(this).attr('data-target-id')).val()
|
|
});
|
|
});
|
|
}); |