output method
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");
}
}