三星智能电视应用程序;Brightcove示例应用程序远程控制问题
Samsung Smart TV App & Brightcove Sample App Remote Control Issue
Bightcove提供的示例应用程序出现问题(https://github.com/BrightcoveOS/Samsung-Smart-TV-Sample-App)适用于三星智能电视。遥控器在最新(2012)型号上不起作用。这似乎是一个已知的错误(https://github.com/BrightcoveOS/Samsung-Smart-TV-Sample-App/issues/3)并在github和brightcove的支持论坛上进行了报道。不幸的是,他们停止了维护源代码,没有人回复这个问题。
在2010/2011车型上,一切正常。
我认为问题位于enginelite.keyhandler.js:中的某个位置
/**
*
* Simple TV App Engine KeyHandler
*
* author: A Different Engine LLC.
* http://adifferentengine.com
* contact@adifferentengine.com
*
*/
// This is pretty straightforward.
TVEngine.KeyHandler = {
keyActions: {
KEY_UP: 'onUp',
KEY_DOWN: 'onDown',
KEY_LEFT: 'onLeft',
KEY_RIGHT: 'onRight',
KEY_ENTER: 'onSelect',
KEY_RETURN: 'onReturn',
KEY_STOP: 'onStop',
KEY_FF: 'onFF',
KEY_RW: 'onRew',
KEY_PLAY: 'onPlay',
KEY_PAUSE: 'onPause',
KEY_YELLOW: 'onYellow',
KEY_RED: 'onRed',
KEY_BLUE: 'onBlue',
KEY_GREEN: 'onGreen',
KEY_EXIT: 'onExit',
KEY_MENU: 'onMenu',
KEY_BACK: 'onReturn',
KEY_SKIPFFORWARD: 'onSkipForward',
KEY_SKIPBACK: 'onSkipBack',
},
enabled: true,
keyMap: {},
init: function() {
// Maps system key list to ours
$KEYS = TVEngine.getPlatform().keys();
// Transforming Samsung keymap into something we like slightly better.
for(key in $KEYS) {
this.keyMap[$KEYS[key]] = key;
}
this._initializeKeyHandler();
},
_cleared: true,
_initializeKeyHandler: function() {
var _this = this; var clear;
$(document).bind("keydown", function(event) {
var action = _this.keyActions[_this.keyMap[event.keyCode]];
// $log("<<< GOT KEY ACTION: "+action+">>>");
if ( action && _this.enabled ) _this.trigger("keyhandler:"+action);
return false;
});
$(document).bind("keyup", function(event) {
var action = _this.keyActions[_this.keyMap[event.keyCode]]+"Release";
// $log("<<< GOT KEY ACTION: "+action+" >>>");
if ( action ) _this.trigger("keyhandler:"+action);
return false;
})
},
enable: function(){
this.enabled = true;
},
disable: function() {
this.enabled = false;
}
};
// Now we can subscribe to the keyhandler from anywhere.
_.extend(TVEngine.KeyHandler, Backbone.Events);
有人能解决这个问题吗?
干杯
您需要重写enginelite.platforms.js
文件中的_keys
对象:
this._keys = {
KEY_RETURN: 88, //36, //8
KEY_UP: 29460, //38,
KEY_DOWN: 29461, //40,
KEY_LEFT: 4, //37,
KEY_RIGHT: 5, //39,
KEY_ENTER: 29443, //13,
KEY_RED: 108, //65,
KEY_GREEN: 20, //66,
KEY_YELLOW: 21, //67,
KEY_BLUE: 22, //68,
KEY_BACK: 8, //I don't know what button on remote it is :)
KEY_PLAY: 71, //80,
}
它将在三星的所有平台上运行。
正如我的回答为您提供的直接解决方案一样,@brimil01解决方案为您提供了调试问题的方法。
我建议检查生成的密钥映射,看看在init:期间密钥处理程序中存储了哪些密钥
for(key in $KEYS) {
alert(key+": "+$KEYS[key]);
this.keyMap[$KEYS[key]] = key;
}
然后捕获keydown事件中发送的密钥码:
$(document).bind("keydown", function(event) {
alert("keyCode: "+event.keyCode);
alert("keyMap: "+_this.keyMap[event.keyCode]);
var action = _this.keyActions[_this.keyMap[event.keyCode]];
// $log("<<< GOT KEY ACTION: "+action+">>>");
if ( action && _this.enabled ) _this.trigger("keyhandler:"+action);
return false;
});
这应该让您了解密钥处理程序中发生了什么。
相关文章:
- 三星智能电视应用程序;Brightcove示例应用程序远程控制问题
- 如何远程检查JavaScript应用程序的函数调用堆栈
- 如何在服务器中为我的Firefox OS应用程序加载远程内容-在Web和FxOS设备中
- 应用程序在“关闭”之后停止工作(控制台中没有错误);咕哝的构造”;
- Windows 8市场应用程序JS,访问远程XML文件
- 你能在客户端将应用程序设置为只有Javascript,在远程服务器上设置为PHP吗
- 控制node.js应用程序's通过外部网站举办的活动
- 如何在Java web应用程序中自动控制静态文件(css、js、image)的版本
- 使用JavaScript控制iOS网络应用程序中列表的垂直滚动和水平滑动
- 检测远程资源的应用程序缓存生存能力
- 如何从 HTML Web 应用程序查询远程预言机数据库
- 了解 Node.js 应用程序中的控制流
- 模态对话框加载 jquery 在控制台中执行,但不从应用程序加载.js
- 如何在JMVC/Can.js中处理应用程序的版本控制
- 我应该在我的PhoneGap应用程序中包括我的所有源,还是从远程服务器请求它们
- 如何在浏览器中访问远程节点.js应用程序,而不是在本地主机上
- 通过 Stackmob SDK 将基于主干本地存储的应用程序连接到 StackMob 远程服务器
- 三星智能电视应用程序无法控制音量
- 寻找Windows 8地铁风格的应用程序日历控制在我的应用程序中使用
- 单页应用程序版本控制