save method
void
save()
Implementation
void save() {
List<int> head = 'ID3'.codeUnits + [0x04, 0x00, 0x00];
List<int> tagData = [];
for (var element in _frames) {
List<int> frameData = [];
frameData.addAll(element.name);
int frameSize = element.data.length;
frameData.add((frameSize >> 21) & 0x7F);
frameData.add((frameSize >> 14) & 0x7F);
frameData.add((frameSize >> 7) & 0x7F);
frameData.add(frameSize & 0x7F);
frameData += [0x00, 0x00]; // Flags
frameData += element.data;
tagData.addAll(frameData);
}
int tagSize = tagData.length;
head.add((tagSize >> 21) & 0x7F);
head.add((tagSize >> 14) & 0x7F);
head.add((tagSize >> 7) & 0x7F);
head.add(tagSize & 0x7F);
int mpegFrameIndex = findFirstMpegFrame(_audioFile._rawData);
_audioFile._rawData =
head + tagData + _audioFile._rawData.sublist(mpegFrameIndex);
}