带 HLS 的 Chromecast EIA-608 隐藏式字幕

Chromecast EIA-608 Closed Captions with HLS

我正在使用 CastCompanionLibrary for chromecast sender support in my android application. The receiver application is the default Styled Media Receiver

我的流是 HLS 并且包含 EIA-608 隐藏式字幕轨道。从文档来看,样式化媒体接收器和 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,但文档中似乎没有关于带内曲目的 contentId 的任何内容(也许不需要)?

如果有人能参与这项工作,我将不胜感激 ;)

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