SEF プレーヤーでクローズド キャプションを動作させようとしてきましたが、うまくいきませんでした。私のアプリは playready ストリームを使用しており、SAMI ファイルのサイドロードを試みましたが、エラーが発生しました。サイドローディングをしたいのですが、埋め込まれたクローズドキャプションを機能させることができれば、それが最初のステップになります. Samsung 開発者のフォーラムには、限られた競合するドキュメントや投稿があるようです。そのため、これを 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 も試しましたが、同じ不一致エラーが発生します。ガイダンスをいただければ幸いです。