이 스크립트는 직접 설치하는 용도가 아닙니다. 다른 스크립트에서 메타 지시문 // @require https://update.greatest.deepsurf.us/scripts/40545/264982/JS%20FLACMetadataEditor.js
을(를) 사용하여 포함하는 라이브러리입니다.
Usage:
// # Creating editor instance:
let editor = new FLACMetadataEditor(ArrayBuffer);
// # Editing tags:
// List with standard field names: https://xiph.org/vorbis/doc/v-comment
editor.addComment('ARTIST=Laibach');
editor.addComment('ARTIST', 'Laibach');
// All properties are facultative except "data"
// Default values (except "data", of course) presented in example:
writer.addPicture({
APICtype: 3,
MIMEType: 'image/jpeg',
colorDepth: 0,
colorNumber: 0,
data: ImageDataAsArrayBuffer,
description: '',
width: 0,
height: 0
});
// remove single atrist
editor.removeComment('ARTIST', 'Laibach');
// remove all atrists
editor.removeComment('ARTIST');
// remove ALL comments
editor.removeComment();
// # Writing changes
editor.serializeMetadata();
// # Convert result to blob
let resultArrayBuffer = editor.arrayBuffer;
let blob = new Blob([resultArrayBuffer], {type: 'audio/flac'});
let url = URL.createObjectURL(blob);
What else?
Editable full FLAC metadata except CUESHEET
May be accessed through editor.metadata
Do console.log(editor)
to explore it. Structures have self-descriptive names.
Chains
As all public functions return this, we are able to create trains. e.g. this
new FLACMetadataEditor(ArrayBuffer).removeComment().addComment('TITLE','The Whistleblowers').serializeMetadata().arrayBuffer;
returns changed ArrayBuffer with only one comment — TITLE=The Whistleblowers
TODO:
More debug output
METADATA_BLOCK_CUESHEET parsing