我有一个在 Samsung Smart TV Emulator v5.0 中运行的 typescript/javascript Tizen Web 应用程序。使用三星 AVPlay API。该网络应用程序播放来自 HDHomeRun 设备的 MPEG 流视频源。视频与声音完美播放。
问题是,播放头更改功能都不起作用。即
seek
、jumpBackward
、jumpForward
等。即使状态有效“正在播放、已暂停或已准备就绪”,它们都会给我相同的错误“InvalidStateError:PLAYER_ERROR_INVALID_STATE”。
这是一个代码片段:
var state = webapis.avplay.getState();
console.log("[Player][seekBackward] state: ", state);
webapis.avplay.jumpBackward(5000, success =>
{
console.log("[Player][rewind][success]");
}, error =>
{
console.error("[Player][seekBackward]", error);
});
这是我调用此命令时控制台中产生的错误:
有什么想法可以让
jumpBackward
和其他播放头功能正常工作吗?
我查了一下: 使用 AVPlay wgt ,使用 URL [http://168.219.241.217/fileshare/AVPlayTest/WebAPITest/Basic/Youtube.mp4] ,seek 和 Jumpfw 功能工作正常。 但上面的网址是三星内部的,我认为在三星之外无法访问。
我没有遇到像你一样的问题,但根据我的经验,你应该检查:
使用“await webapis.avplay.play()”确保后续代码在状态超出“READY”时运行
var state = webapis.avplay.getState();
console.log("[Player][seekBackward] state: ", state);
if (state == "PLAYING" || state == "PAUSED")
{
webapis.avplay.jumpBackward(5000, success =>
{
console.log("[Player][rewind][success]");
}, error =>
{
console.error("[Player][seekBackward]", error);
});
}
试试这个,您必须在前进和后退媒体之前检查播放器状态(正在播放或暂停)。
可能对你有帮助。