我开始在CCL上使用VideoCastManager.isRemoteStreamLive()
方法,但我意识到它总是返回false。这种方法似乎取决于info.getStreamType()
所以我想知道谁应该将该类型设置为直播?有没有办法在接收器端执行此操作?
感谢。
答案 0 :(得分:1)
这些是你的流吗?如果是这样,最好的选择是将某些内容添加到元数据或指示它是实时流的轨道中。如果那不可能,那就有一些"嗅探"可能有用也可能没用的策略。
首先,HTML5视频元素的规范指出,如果无法确定视频的边界(即持续时间),则getDuration方法应返回无穷大(javascript常量等于Number.POSITIVE_INFINITY)。这并不总是意味着视频是流媒体(例如,响应的内容长度标题可能存在问题),但它可能是您的最佳选择 - 拥有您的接收器,一旦元数据已加载,请调用getDuration并查看返回的内容。
您也可以让您的接收器查看源(视频元数据的currentSrc属性) - 许多实时流是自适应比特率流,因此将在视频元素中表示为.m3u8源。
但这些只是做出有根据的猜测的方法;正如Ali在其中一条评论中指出的那样,客户端(无论是通过原生javascript API还是Chromecast API)没有编程方式来确定流是实时流。