output method

String output(
  1. int startSegment,
  2. int endSegment, {
  3. int timeOffset = 0,
})

Implementation

String output(int startSegment, int endSegment, {int timeOffset = 0}) {
  if (outputMode == "plaintext") {
    StringBuffer stringBuffer = StringBuffer();
    for (int i = startSegment; i < endSegment; ++i) {
      String text = fullGetSegmentsText(i);
      stringBuffer.write(text); // 将每段文本写入 StringBuffer
      stringBuffer.write('\n'); // 如果需要换行,可以添加换行符
    }

    String result = stringBuffer.toString(); // 获取拼接后的完整字符串

    return result;
  } else if (outputMode == "json") {
    //simplified json output
    List<Map<String, String>> result = [];
    result.add({'multilingual': isMultilingual().toString()});
    result.add({"language": langStr()});
    for (int i = startSegment; i < endSegment; i++) {
      String text = fullGetSegmentsText(i);
      result.add({
        "from": toTimestamp(fullGetSegmentT0(i) + (timeOffset / 10).toInt()),
        "to": toTimestamp(fullGetSegmentT1(i) + (timeOffset / 10).toInt()),
        "text": text
      });
    }

    return jsonEncode(result);
  } else if (outputMode == "txt") {
    StringBuffer stringBuffer = StringBuffer();
    for (int i = startSegment; i < endSegment; ++i) {
      String text = fullGetSegmentsText(i);
      stringBuffer.write(text); // 将每段文本写入 StringBuffer
      stringBuffer.write('\n'); // 如果需要换行,可以添加换行符
    }
    String result = stringBuffer.toString(); // 获取拼接后的完整字符串

    return result;
  } else if (outputMode == "srt") {
    StringBuffer stringBuffer = StringBuffer();
    for (int i = startSegment; i < endSegment; ++i) {
      String text = fullGetSegmentsText(i);
      stringBuffer.write("${i + 1}\n");
      stringBuffer.write(
          "${toTimestamp(fullGetSegmentT0(i) + (timeOffset / 10).toInt(), comma: true)} --> ${toTimestamp(fullGetSegmentT1(i) + (timeOffset / 10).toInt(), comma: true)}\n");
      stringBuffer.write(text); // 将每段文本写入 StringBuffer
      stringBuffer.write('\n'); // 如果需要换行,可以添加换行符
    }
    String result = stringBuffer.toString(); // 获取拼接后的完整字符串

    return result;
  } else {
    throw Exception("Invalid output mode");
  }
}