Начальная настройка Chromecast
Рад наконец-то иметь некоторое время, чтобы попытаться разработать мой Chromecast, но, увы... даже не могу начать.
Я заполнил запрос в белый список, получил электронное письмо, подтверждающее пятницу (как раз к выходным!), Затем я начал смотреть образцы и, основываясь на том, что я хотел, чтобы получился привет мир.
- Настроил Chrome Cast для отправки сериала в Google через приложение Mac Chromecast
- белые списки в меню разработчика
- проверил, что код получателя действительно находится на том же URL, что и заявленная регистрация (копия вставлена из письма с подтверждением, и это работает).
Происходит следующее: я открываю HTML отправителя с моего сервера или с локального хоста, и мне не удается отобразить Chromecast (да, я в той же сети).
Я добавил логи в код, чтобы проверить, получено ли сообщение о событии, а НЕ получено, поэтому я предполагаю, что это расширение, которое не может проверить идентификатор приложения.
есть ли журнал для расширения, которое я могу посмотреть?
вот код отправителя:
<!DOCTYPE html>
<html data-cast-api-enabled="true">
<head>
<title>Hello sender!</title>
</head>
<body>
<div class="receiver-div">
<h3>Choose A Receiver</h3>
<ul class="receiver-list">
<li>Looking for receivers...</li>
</ul>
</div>
<button class="kill" disabled>Kill the Connection</button>
</body>
<script src="http://underscorejs.org/underscore-min.js"></script>
<script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
<script>
var cast_api,
cv_activity,
receiverList,
$killSwitch = $('.kill');
console.log("initializing script");
window.addEventListener('message', function(event) {
console.log('Message received of type'+event.data.event);
if (event.source === window && event.data &&
event.data.source === 'CastApi' &&
event.data.event === 'Hello') {
initializeApi();
}
});
initializeApi = function() {
console.log('Initialize API called');
if (!cast_api) {
console.log("no cast api yet")
cast_api = new cast.Api();
cast_api.addReceiverListener('myidstring here', onReceiverList);
}
};
onReceiverList = function(list) {
console.log('on receiverlist called');
if (list.length > 0) {
receiverList = list;
$('.receiver-list').empty();
receiverList.forEach(function(receiver) {
$listItem = $('<li><a href="#" data-id="' + receiver.id + '">' + receiver.name + '</a></li>');
$listItem.on('click', receiverClicked);
$('.receiver-list').append($listItem);
});
}
};
receiverClicked = function(e) {
e.preventDefault();
var $target = $(e.target),
receiver = _.find(receiverList, function(receiver) {
return receiver.id === $target.data('id');
});
doLaunch(receiver);
};
doLaunch = function(receiver) {
if (!cv_activity) {
var request = new cast.LaunchRequest('still my id string here', receiver);
$killSwitch.prop('disabled', false);
cast_api.launch(request, onLaunch);
}
};
onLaunch = function(activity) {
if (activity.status === 'running') {
cv_activity = activity;
cast_api.sendMessage(cv_activity.activityId, 'charz', {type: 'HelloWorld'});
}
};
$killSwitch.on('click', function() {
cast_api.stopActivity(cv_activity.activityId, function(){
cv_activity = null;
$killSwitch.prop('disabled', true);
});
});
</script>
</html>
единственное, что регистрируется - это строка "сценарий инициализации".
заранее спасибо,
CR.
РЕДАКТИРОВАТЬ: Я отмечу ответ Али как ответ, поскольку он указал мне путь, чтобы исправить это: тот факт, что отладка означала, что белый список был сделан, заставил меня посмотреть конфигурацию на моей стороне:
- file: // URL не работают
- когда я настраиваюсь на своем веб-сервере локально, с localhost/sender.html он работает сразу.
- белый список ДОЛЖЕН БЫТЬ ТОЧНЫМ и не включать протокол (по-видимому). Я внес в белый список мой URL-адрес как:
http://myserver/mypath/sender.html
, и это не сработало, наконец, добавивmyserver/mypath/sender.html
сделал это безупречно.
Может быть, документ может быть обновлен, чтобы отразить это?
1 ответ
Попробуйте получить доступ http://<chromecast-ip>:9222
чтобы убедиться, что ваше устройство находится в белом списке правильно. Вы должны увидеть страницу с простой ссылкой, которая откроет отладчик Chrome для вашего получателя.