@infinito/id3
Version:
ID3 Tag Reader/Writer
25 lines (23 loc) • 586 B
JavaScript
import {TextEncoder} from 'text-encoding';
import {constants} from '../constants.js';
export default function genID3v2_3Frame(frame_id,val) {
val = new TextEncoder().encode(val);
var sz = val.byteLength;
sz++;
var buf = new Uint8Array(10+sz);
for(var i=0;i<frame_id.length;i++) {
buf[i] = frame_id.charCodeAt(i);
}
for(var i=constants.ID3V2_3_FRAME_SIZE_BYTES-1;i>=0;i--) {
buf[4+i] = sz&0xff;
sz>>=8;
}
sz = val.byteLength;
buf[8] = 0;
buf[9] = 0;
buf[10] = 1;//Encoding Byte
for(var i=0;i<sz;i++) {
buf[11+i] = val[i];
}
return buf;
};