我一直试图让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用于路径,但是我收到了相同的不匹配错误。任何指导都将不胜感激。
答案 0 :(得分:0)
我从来没有真正得到字幕文件来与播放器一起使用。我找到了一个字幕解析器并将其从(http://mediaelementjs.com/)中删除。它为您提供了一个数组中的每个字幕条目,该数组具有字幕应该开始显示的时间以及何时应该停止显示。