save method
Implementation
Future<void> save(String path) async {
final tarEncoder = TarEncoder();
OutputStream stream = OutputStream();
tarEncoder.start(stream);
final basicInfoData = basicInfo.writeToBuffer();
tarEncoder.add(ArchiveFile(
TarKey.playbackBasicInfo, basicInfoData.length, basicInfoData));
if (log != null) {
tarEncoder.add(ArchiveFile(TarKey.log, log!.length, log));
}
for (int i = 0; i < matchErrors.length; i++) {
final error = matchErrors[i];
final mp = error.matchPosition.toMatchPosition();
final mpData = mp.writeToBuffer();
tarEncoder.add(ArchiveFile(
'${TarKey.matchPositionPrefix}$i', mpData.length, mpData));
tarEncoder.add(ArchiveFile('${TarKey.recorderImgPrefix}$i',
error.imageOfRecorder.length, error.imageOfRecorder));
tarEncoder.add(ArchiveFile('${TarKey.playerImgPrefix}$i',
error.imageOfPlayer.length, error.imageOfPlayer));
}
tarEncoder.finish();
final file = File(path);
await file.writeAsBytes(stream.getBytes());
}