适用于HLS的Chromecast EIA-608隐藏式字幕

时间:2015-07-20 17:34:13

标签: android chromecast google-cast

我在我的Android应用程序中使用CastCompanionLibrary进行chromecast发送器支持。接收器应用程序是默认的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的内容(可能不需要)?< / p>

如果有人能够参加此项活动,我会感激不尽;)

1 个答案:

答案 0 :(得分:2)

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