2014-04-24 37 views
0

我至少从v0.3.0开始使用媒体播放器库进行HLS播放,直到当前版本(v0.5.0)出现问题。我知道玩家图书馆是在测试版,所以我想知道如果别人看到我看到的。Chromecast上的HLS播放性能和稳定性

基本上,问题表现为一段时间后,Chromecast设备变得无响应。调试器停止显示任何输出,关闭它并尝试再次访问它会导致超时错误。有时候,一段时间后,设备会崩溃到主屏幕(无脑冻结)。

我试着在发生这种情况之前查看配置文件和时间表,但没有看到任何异常尖峰。我也注意到在日志中的一些错误(但可能是无关的这一点),说是这样的:

An attempt was made to use an object that is not, or is no longer, usable 

唯一的“不寻常”的事情我做的是,我在每个视频timeupdate事件广播的状态。尽管如此,这在正常播放中不会导致任何此类问题。

+0

有多长“一段时间”?你可以用任何日志和复制的步骤问题追踪器一起发布样品流:https://code.google.com/p/google-cast-sdk/issues/list –

+0

比方说,量级为分钟。我还需要收集一些数据,并尝试更精确地分离的再现步骤。在那之前,我想知道是否有人经历过类似的事情。 – alh84001

回答

0

希望你已经解决了这个问题,我提出了一个解决方案,为有同样问题的人。

我有一个接收器流式HLS(正确编码,使用CORS头和AES加密)。我注意到,有时候Chromecast会随着巨大的细分市场(大于25Mo)而疯狂地将其追加到后面的细分市场,从而随机(几乎)随机崩溃。

相信我大概问过这种小型设备的,有两种解决方案,以降低装置负荷:

  1. 禁用AES加密(并不总是可以接受的)
  2. 减小段质量

关于解决方案2,这工作得很好:

window.host = new cast.player.api.Host({'mediaElement':mediaElement, 'url':url}); 
window.protocol = cast.player.api.CreateHlsStreamingProtocol(host); 

window.host.getQualityLevel = function(streamIndex, qualityLevel){ 

    var lowestQuality = protocol.getStreamInfo()["bitrates"].length-1; 
    var plusOneQuality = (qualityLevel == lowestQuality)?qualityLevel:qualityLevel+1; 

    console.log("original QualityLevel : " + qualityLevel, "returned QualityLevel", plusOneQuality); 
    return plusOneQuality; 
} 

我很想对此有一些反馈。是否有人已经不得不使用这样的伎俩,以防止HLS流媒体高清崩溃的设备?