obscreen/data/www/js/cast-url.js
2024-08-06 13:18:02 +02:00

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()
});
});
});