我正在尝试向 ChromeCast 的自定义接收器发送消息。我在 Android 应用程序中使用以下代码向接收器发送代码;
Cast.CastApi.sendMessage(mApiClient, "urn:x-cast:move", "TEST");
在接收端我有以下代码;
window.mediaElement = document.getElementById('media');
window.mediaManager = new cast.receiver.MediaManager(window.mediaElement);
window.castReceiverManager = cast.receiver.CastReceiverManager.getInstance();
window.castReceiverManager.start();
window.castReceiverManager.onSenderConnected = function(event) {
//This is called
}
window.customMessageBus = window.castReceiverManager.getCastMessageBus('urn:x-cast:move', cast.receiver.CastMessageBus.MessageType.STRING);
var defaultFunction = window.customMessageBus.onMessage;
window.customMessageBus.onMessage = function(event) {
//This is not called
defaultFunction(event);
};
正如我在代码中指出的,调用了“onSenderConnected”,因此我知道它已连接到应用程序。但是当我尝试通过自定义消息总线发送消息时,它没有给我任何信息。我对 android 和cast 完全陌生,所以我可能做错了一千件事。谁能帮我解决这个问题吗?
最佳答案
我自己解决了。我做错的是在添加自定义命名空间之前启动castReceiverManager。因此,与我在问题中发布的内容相比,接收器的正确代码是:
window.mediaElement = document.getElementById('media');
window.mediaManager = new cast.receiver.MediaManager(window.mediaElement);
window.castReceiverManager = cast.receiver.CastReceiverManager.getInstance();
//Removed the start here
window.castReceiverManager.onSenderConnected = function(event) {
//OnConnect
}
window.customMessageBus = window.castReceiverManager.getCastMessageBus('urn:x-cast:move', cast.receiver.CastMessageBus.MessageType.STRING);
var defaultFunction = window.customMessageBus.onMessage;
window.customMessageBus.onMessage = function(event) {
//OnMessage
defaultFunction(event);
};
//Start at the end
window.castReceiverManager.start();
关于javascript - Chrome Cast 未收到消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27469178/