【问题标题】:support srt/vtt subtitle and syncing in video player flutter在视频播放器中支持 srt/vtt 字幕和同步
【发布时间】:2020-02-27 00:41:38
【问题描述】:

我想在我的应用中播放 srt 字幕。到目前为止,我已经集成了srt_parser。 另外,我可以通过这段代码获得玩家的当前位置

  inMilliseconds = _videoPlayerController.value.position.inMilliseconds;

这里是 srt 解析代码。

  String data = '''1
  00:00:01,600 --> 00:00:04,200
  English (US)

  2
  00:00:05,900 --> 00:00:07,999
  This is a subtitle in American English

  3
  00:00:10,000 --> 00:00:14,000
  Adding subtitles is very easy to do''';

  srtParser() {
  List<Subtitle> subtitles = parseSrt(data);
  for (Subtitle item in subtitles) {
  print(
      'inMilliseconds ${inMilliseconds}  Begin is: ${item.range.begin} and End is: 
  ${item.range.end}');
  if (inMilliseconds > item.range.begin &&
      inMilliseconds < item.range.end) {
    for (var line in item.parsedLines) {
      for (var subLine in line.subLines) {
        print(
            'myline${item.parsedLines.indexOf(line)} subline${line.subLines.indexOf(subLine)} is: ${subLine.rawString}');
        setState(() {
          videoSubtitle =
              '${item.parsedLines.indexOf(line)} ${line.subLines.indexOf(subLine)} ${subLine.rawString}';
        });
      }
    }
  } else {
    setState(() {
      videoSubtitle = null;
    });
  }
}
if (subtitles[0].parsedLines[0].subLines[1].htmlCode.b == true) {
  print('true');
}

}

那么如何将字幕与视频播放器位置同步?

现在我正在解析 srt 字符串。如何从 srt 文件中解析它?

【问题讨论】:

  • 添加更多标签,让更多人看到问题
  • 作为一种解决方法,我现在使用pub.dev/packages/mx_player_plugin。这将视频 URL 和 srt Url 作为参数并使用 MX 播放器播放视频。

标签: flutter subtitle video-player srt vtt


【解决方案1】:

目前我使用的是subtitle_wrapper_package

视频播放器支持vtt字幕。

SubTitleWrapper(
  videoPlayerController: chewieController.videoPlayerController,
  subtitleController: SubtitleController(
    subtitleUrl: subtitleUrl,
    showSubtitles: true,
  ),
  subtitleStyle:
      SubtitleStyle(textColor: Colors.white, hasBorder: true),
  videoChild: Chewie(
    controller: chewieController,
  )),

输出:

【讨论】:

  • 缓冲视频有管理吗?如果正在播放视频,并且用户从前一次通过触摸设置的搜索不保存缓冲视频,它会重新开始。
猜你喜欢
  • 1970-01-01
  • 2022-10-08
  • 2018-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-08
  • 2017-12-15
  • 2015-01-14
相关资源
最近更新 更多