在我们的平台上,"http://qual-e.appspot.com/“中由于”结束“而失败的测试用例"18. http://qual-e.appspot.com/”不能在Cobalt中触发。
conformanceTest-20170531180007.js中的以下js代码
media.addEventListener('ended', function() {
self.log('onended called');
runner.succeed();
});我无法接收已结束的回调,测试用例将失败。
html_media_element.cc中的以下C代码
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)?或者你还有什么其他建议吗?
谢谢
发布于 2017-06-20 02:42:00
你用哪种钴版本?一些合作伙伴可以通过修改它们的实现来通过这个测试。您也可以参考最新的Cobalt开源实现,因为它也通过了这个测试。
丹尼尔
发布于 2017-07-19 20:41:10
我们正在调查这个问题,这很可能是我们代码中的一个bug。我们会随时更新您的任何进展。
https://stackoverflow.com/questions/44642902
复制相似问题