如何在Google Cast发送者应用中启用hls文件上的字幕

jau*_*lle 5 android http-live-streaming google-cast chromecast

是否可以从Google Cast发送者应用启用字幕?我Google Cast在我的应用程序中实现了hls流媒体在Chrome Cast上正常运行.hls文件中包含字幕轨道,但字幕未显示.没有.vtt可用于视频的文件,因此我无法实现MediaTrack将字幕URL发送到接收器应用程序.我想知道是否有可能hls从发送者应用程序启用流媒体字幕或我是否需要为此制作自定义接收器应用程序?

我正在创建MediaInfo以下列方式发送到接收器应用程序的对象(标准)

private MediaInfo buildMediaInfo() {
        MediaMetadata movieMetadata = new MediaMetadata(MediaMetadata.MEDIA_TYPE_MOVIE);

    movieMetadata.putString(MediaMetadata.KEY_TITLE, mTitle + " (" + mProdYear + ")");
    movieMetadata.putString(MediaMetadata.KEY_SUBTITLE, mFilmType);
    movieMetadata.addImage(new WebImage(Uri.parse(mImageUrl)));

    return new MediaInfo.Builder(mVideoUrl.toString())
            .setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
            .setContentType("videos/mp4")
            .setMetadata(movieMetadata)
            //enable subtitles on hls streaming??
            .build();
}
Run Code Online (Sandbox Code Playgroud)

Ali*_*daf 2

你没有提到你正在使用什么接收器。在默认/样式接收器中,HLS(一般来说自适应流)由媒体播放器库处理。如果它看到支持的曲目,则该信息将在状态更新中发送到连接的设备。然后,发送者应用程序可以了解其他轨道(及其关联的轨道 ID)的存在,然后可以打开或关闭它们。例如,如果您使用 CCL,这将自动为您处理(在发送方):要查看实际情况,请抓住 CastVideos-android-v2(使用 CCL)并拥有两部手机,连接到接收方并启动那里的前三部电影之一(前三部电影有隐藏式字幕),然后转到全屏投射控制器页面并打开隐藏式字幕并选择文本轨道。然后将第二部手机连接到同一个接收器,您会看到它与接收器上正在播放的内容同步,如果您进入第二部手机上的全屏控制器,您会看到它知道隐藏式字幕,并且启用了什么轨道。