当前位置: 首页 > 知识库问答 >
问题:

ExoPlayer:显示字幕

轩辕经国
2023-03-14

我使用ExoPlayer从URL播放音频。我有XML格式的字幕,看起来像这样:

    [
    {
        "id": 1,
        "startTime": "00:00:00",
        "endTime": "00:00:05",
        "textEn": "towns, in late 15th-century England.",
        "textRu": null
    },
    {
        "id": 2,
        "startTime": "00:00:05",
        "endTime": "00:00:10",
        "textEn": "the first thing to note is that in stark contrast to today, England was an overwhelmingly rural country.",
        "textRu": null
    }
]

我知道有一种方法可以在使用ExoPlayer播放时显示字幕。然而,我扫描了《开发者指南:ExoPlayer开发者指南》中的所有内容,但没有找到如何操作,因为文档非常糟糕。另外,字幕的XML格式是否适合ExoPlayer,如果现在,我应该如何转换,以及转换成什么格式。(忍者请帮帮我)

共有2个答案

云炜
2023-03-14

您可以将json转换为。str格式化并保存为文件。现在玩家可以展示了。str文件。以下是str格式的示例:

1
00:02:17,440 --> 00:02:20,375
Senator, we're making
our final approach into Coruscant.

2
00:02:20,476 --> 00:02:22,501
Very good, Lieutenant. 
胡嘉歆
2023-03-14

如果字幕XML来自HTTP:

Format subtitleFormat = Format.createTextSampleFormat(
                null, // An identifier for the track. May be null.
                MimeTypes.APPLICATION_SUBRIP, // The mime type. Must be set correctly.
                C.SELECTION_FLAG_DEFAULT, // Selection flags for the track.
                null); // The subtitle language. May be null.

MediaSource subtitleSource = new SingleSampleMediaSource.Factory(dataSourceFactory)
                        .createMediaSource(Uri.parse(subtitleUrl), subtitleFormat, C.TIME_UNSET);

        MergingMediaSource mergedSource =
                new MergingMediaSource(videoSource, subtitleSource);
player.prepare(mergedSource);

 类似资料:
  • 嘿,伙计们,我一直试图在exoPlayer中显示视频,因为2天,但没有任何进展,请指导我做错了什么。谢谢提前。 这是我对create函数的代码调用。 我的图书馆版本是

  • 我试着把第二个播放器放在一个有圆角的框架内(这个答案和这个答案),但是播放器总是会跳出父框架并绘制视频的完整矩形。 我发现这个解决方案使用GLSurfaceView,但是这个解决方案使用经典的MediaPlayer而不是ExoPlayer。

  • 我正在使用ExoPlayer播放视频的应用程序。出于某种原因,当我试图暂停时,视频播放器没有显示播放/暂停图标。我只为播放/暂停做了一个自定义布局,并将其设置在PlayerView上。使用或播放/暂停视频。到处都找不到解决办法,好像我错过了什么,但又不知道是什么。

  • ExoPlayer 是 Android 上一个应用级的媒体播放器。它为 Android MediaPlayer 的 API 在播放本地或在线的视频与音频上提供了一个候选。ExoPlayer 支持一些 Android MediaPlayer API 无法提供的特性,包括 DASH 和 SmoothStreaming 自适应回放,持久的高速缓存和自定义渲染器。不像 MediaPlayer API,EX

  • 排除不显示字段 Model.findAll({ attributes: { exclude: ['baz'] } });

  •  这个世界上的文字类冒险游戏,显示文字方式可以大致分为在对话框内显示和电子小说式全画面窗口(Visual-Novel Type)两种。只是文字显示位置的不同,并没有特别大的差异。以上两种显示方式 KAG 均支持。 两种文字显示方式  此外,也能做到竖行显示。 竖行显示  KAG 默认的设定使用的是横行显示和电子小说式。详细的说明请参考 Config.tjs 。本教程将以使用电子小说式为前提,继续说