更改Samsung Smart TV App中的频道

时间:2014-12-20 04:10:00

标签: samsung-smart-tv

我正在编写一个带有“画中画”对象的应用程序,显示当前电视的调谐内容。用来触发它的JS是:

webapis.tv.window.setRect({
    left:108, top:0, width : 714, height: 420
});

但是我不知道如何处理更改频道的键绑定。有没有可用的例子?

1 个答案:

答案 0 :(得分:0)

你有两种方法,如果你想使用本地频道切换,如" tuneUp"和" tuneDown"按钮,您可以取消注册您的应用程序中的按钮,它们将作为本机工作:

function init() {

    var pluginAPI,
        tvKey;

    try {

        var nnaviPlugin = document.getElementById('pluginObjectNNavi');

        if (nnaviPlugin) {
            nnaviPlugin.SetBannerState(2);
        }

        pluginAPI = new Common.API.Plugin();
        tvKey = new Common.API.TVKeyValue();

        pluginAPI.setOffScreenSaver();

        pluginAPI.unregistKey(tvKey.KEY_CH_UP);
        pluginAPI.unregistKey(tvKey.KEY_CH_DOWN);

        pluginAPI.unregistKey(tvKey.KEY_VOL_UP);
        pluginAPI.unregistKey(tvKey.KEY_VOL_DOWN);
        pluginAPI.unregistKey(tvKey.KEY_MUTE);

        webapis.tv.window.getAvailableWindow(successCB, errorCB);

    } catch (e) {
        console.log(e);
    }
}

不要忘记将插件添加到html:

<object id="pluginPlayer" classid="clsid:SAMSUNG-INFOLINK-PLAYER" style="width: 0; height: 0; opacity: 0;"></object>
<object id="pluginObjectTVMW"classid="clsid:SAMSUNG-INFOLINK-TVMW" style="width: 0; height: 0; opacity: 0;"></object>
<object id="pluginObjectNNavi" classid="clsid:SAMSUNG-INFOLINK-NNAVI" style="width: 0; height: 0; opacity: 0;"></object>

第二种方法,捕获keyDown事件并使用sdk方法:

webapis.tv.channel.tuneUp(successCB, errorCB, webapis.tv.channel.NAVIGATOR_MODE_ALL);
webapis.tv.channel.tuneDown(successCB, errorCB, webapis.tv.channel.NAVIGATOR_MODE_ALL);

如果你想进入所选频道:

webapis.tv.channel.tune(channelObjFromEpg, successCB, errorCB);