首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Cobalt中触发javascript "ended“事件

无法在Cobalt中触发javascript "ended“事件
EN

Stack Overflow用户
提问于 2017-06-20 02:34:21
回答 2查看 144关注 0票数 0

在我们的平台上,"http://qual-e.appspot.com/“中由于”结束“而失败的测试用例"18. http://qual-e.appspot.com/”不能在Cobalt中触发。

conformanceTest-20170531180007.js中的以下js代码

代码语言:javascript
复制
media.addEventListener('ended', function() {
self.log('onended called');
runner.succeed();
});

我无法接收已结束的回调,测试用例将失败。

html_media_element.cc中的以下C代码

代码语言:javascript
复制
if (!SbDoubleIsNan(dur) && (0.0f != dur) && now >= dur && playback_rate_0)
{
     ......

     if(!sent_end_event)
     {
     send_end_event_ = true;
     ScheduleOwnEvent(base:Tokens::ended());
     }
     ......
 }

您可以看到,正在检查"now >= dur“,这可能会导致终止回调不再被触发。因为平台在EOS的当前时间和持续时间之间可能存在很小的差距。以这个测试用例为例,"dur“为1.00s,但”现在“可能在EOS平台上停留在0.98ms。

(1)目前,星板API无法接收Cobalt的持续时间。持续时间总是-1。如果星盘可以将持续时间传递给我们,那么当通知"kSbPlayerStateEndOfStream“到Cobalt时,我们可以强迫EOS的当前时间等于持续时间。

(2)可以删除"now >= dur“检查,也可以简单地解决这个问题。

钴能解决这个问题吗(1)或(2)?或者你还有什么其他建议吗?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2017-06-20 02:42:00

你用哪种钴版本?一些合作伙伴可以通过修改它们的实现来通过这个测试。您也可以参考最新的Cobalt开源实现,因为它也通过了这个测试。

丹尼尔

票数 0
EN

Stack Overflow用户

发布于 2017-07-19 20:41:10

我们正在调查这个问题,这很可能是我们代码中的一个bug。我们会随时更新您的任何进展。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44642902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档