三星智能电视隐藏式字幕支持VOD JavaScript应用程序

时间:2013-09-17 03:44:05

标签: samsung-smart-tv closed-captions

我一直试图让SEF玩家使用隐藏式字幕,但没有运气。我的应用程序使用了播放流,我尝试过加载SAMI文件,但是我收到错误。我更愿意做侧载,但是如果我可以将嵌入式隐藏式字幕用于工作,那将是第一步。三星开发者论坛上的文档和帖子似乎有限且相互矛盾,所以我希望找到一个能够在2012/2013设备上工作的人。

以下是我的尝试:

var SefPlugin = document.getElementById('pluginDL');
alert(" " + SefPlugin.Open("Download", "1.000", ""));
alert(SefPlugin.Execute('GetPluginInfo'));

var ret = SefPlugin.Execute('StartDownFile', 'http://testurl.com/test.smi', '$TEMP/subtitle.smi', 10, 10);
alert("SUBTITLE DOWNLOAD RETURNED: "  + ret);

输出结果为:

    JS ALERT: 1
    JS ALERT: 1
    JS ALERT: SUBTITLE DOWNLOAD RETURNED: 1

然后在OnStreamInfoReady方法中我尝试这样做:

   alert(" START SUBTITLE: " +Player.plugin.Execute("StartSubtitle", '$TEMP/subtitle.smi'));
   alert("SET STREAM ID: " +Player.plugin.Execute("SetStreamID", 5, 0));

输出结果为:

    JS ALERT:   START SUBTITLE: -1
    JS ALERT:  SET STREAM ID: 1

返回-1的StartSubtitle是一个错误,我不确定这个场景的问题是什么。

我也通过以与上面相同的方式下载字幕文件来尝试AVPlay插件。然后,我尝试通过调用

来启动播放操作
var subtitleDataCallback = (function(syncTime, data) {
    alert(syncTime + " : " + data);
})();

Main.AVPlayerObj.open('http://testurl.com/test.mp4',
  {
          subtitle: {
              path: "subtitle.smi",
              streamID : 0,
              sync : 1000,
              subtitleDataCallback: subtitleDataCallback
          }
});

如果我省略了字幕对象,它会播放内容,但是当我有字幕对象时,它会给我以下错误:

    JS ALERT:  ======================================= ERROR2: TYPE_MISMATCH_ERR

我也尝试了$ TEMP / subtitle.smi用于路径,但是我收到了相同的不匹配错误。任何指导都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我从来没有真正得到字幕文件来与播放器一起使用。我找到了一个字幕解析器并将其从(http://mediaelementjs.com/)中删除。它为您提供了一个数组中的每个字幕条目,该数组具有字幕应该开始显示的时间以及何时应该停止显示。