Привет. Я пытался добавить текст песни в mp3-файл, добавив текст в кадр USLT в теге id3, используя typecscript. Я использовал библиотеку писателя id3. (https://www.npmjs.com/package/browser-id3-writer) Это код, который я использовал для добавления текста из загруженного документа
/**
* Write an id3 tag by setting the frames.
*/
async writeTags(arrayBuffer) {
const writer = new ID3Writer(arrayBuffer);
writer.setFrame('TIT2', this.state['title'])
.setFrame('TPE1', [this.state['team']])
.setFrame('TYER', this.state['production'])
.setFrame('WCOP', this.state['copyrights'])
.setFrame('TIT3', this.state['subtitle'])
.setFrame('USLT', {
description: '',
lyrics: await this.readTextFile(),
})
.setFrame('APIC', {
type: 3,
data: await this.createImageArrayBuffer(),
description: 'Described picture',
useUnicodeEncoding: false
});
writer.addTag();
const taggedSongBuffer = writer.arrayBuffer;
const blob = writer.getBlob();
const url = writer.getURL();
this.savedUrl = url;
}
Новый файл mp3 можно загрузить, и мы можем просматривать текст, добавленный во время воспроизведения mp3 с использованием windows медиаплеера, что означает, что текст песни был успешно добавлен. Но когда я пытаюсь извлечь эти слова, используя библиотеку читателя id3, я могу просмотреть другие теги, включая изображение, но рамку текста песни (USLT) нельзя просмотреть в объекте. Это код, который я использовал для чтения тега id3.
const tags:ID3Tag = await id3.fromFile(this.contentFileUploaded);
const framesRetrieved = tags.frames as any;
когда я консоль регистрирую объект framesRertained, который на самом деле является извлеченным тегом id3, это то, что я вижу.
снимок экрана консоли вывода извлеченного тега id3
Даже изображение можно найти. Как я могу получить текст из тега id3. Спасибо