android – 如何从Google Cast发送者应用程序启用hls文件上的字幕

是否可以从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();
}
最佳答案
你没有提到你正在使用的接收器.在认/样式接收器中,HLS(一般的自适应流)由媒体播放器库处理.如果它看到支持的曲目,则该信息将在状态更新中发送到连接的设备.然后,发件人应用程序可以了解其他轨道(及其相关的轨道ID)的存在,然后可以打开或关闭它们.例如,如果您使用ccl,这将自动处理(在发送方):要查看实际操作,请抓住CastVideos-android-v2(使用ccl)并拥有两部电话,连接到接收器并启动前三部电影中的一部(前三部分有隐藏式字幕)并转到全屏转换控制器页面并打开隐藏式字幕并选择文本轨道.然后将第二部手机连接到同一个接收器,你会看到它与接收器上播放的内容同步,如果你进入第二部手机的全屏控制器,你会发现它知道隐藏的字幕和什么轨道启用.

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...