Chromecast通过HLS提供EIA-608闭路字幕

3
我正在使用CastCompanionLibrary来支持我的Android应用程序中的chromecast发送器。接收器应用程序是默认的Styled Media Receiver
我的流是HLS格式,并包含EIA-608闭路字幕轨道。从文档中可以看出,Styled Media Receiver和CastCompanionLibrary都支持EIA-608闭路字幕,但我似乎无法让它正常工作。
我在初始化CastCompanionLibrary时启用了VideoCastManager.FEATURE_CAPTIONS_PREFERENCE,并按以下方式构建轨道:
    MediaTrack videoTrack = new MediaTrack.Builder(0, MediaTrack.TYPE_VIDEO)
            .setContentType(PlayerActivity.HLS_MIME_TYPE)
            .setContentId(playlistUrl)
            .build();

    MediaTrack captionsTrack = new MediaTrack.Builder(1, MediaTrack.TYPE_TEXT)
            .setContentType(MediaFormat.MIMETYPE_TEXT_CEA_608)
            .setSubtype(MediaTrack.SUBTYPE_CAPTIONS)
            .setLanguage(Locale.getDefault())
            .setContentId("eia608/1")
            .setName("Closed Captions")
            .build();

我猜测我可能指定了错误的contentId,但是文档中似乎没有关于in-band tracks的contentId的任何信息(也许不需要吧)?
如果有人能帮忙解决这个问题,我将不胜感激。;)
1个回答

2
我们的媒体播放器库(MPL)支持CEA-608用于HLS(传输流),但为了使用它,您需要编写一个自定义接收器并在播放器上调用enableCaptions(true)(在接收器端)。我建议您复制我们的参考接收器,然后进行修改;该参考接收器与Styled Receiver非常接近。一旦您能够使字幕正常工作,那么您就可以添加一个自定义消息(在CCL中支持)来从发送方控制它。

谢谢您的快速回复。很遗憾我们必须经过这么多步骤才能调用一个单一的、由库提供的方法。 - Mike Fougere

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接