0

我目前正在尝试使用 LAME 将波形文件转换为 mp3(我已经成功地做到了)。我还尝试将 id3tag 写入 mp3,直到id3tag_set_albumart. 通过parse.c前端文件夹,我发现id3tag_set_albumart(image) 的第二个参数将是图像文件的内容,而第三个参数将是图像文件的大小。但是当我这样做时(下面的代码),它返回 0,根据 lame.h 是成功但编码拒绝发生(即转换为 mp3 的波形文件)。

FILE* fpi = 0;
char *albumart = 0;
char *filename = "ty.jpg";
fpi = fopen(filename, "rb");
size_t size;
fseek(fpi, 0, SEEK_END);
size = ftell(fpi);
fseek(fpi, 0, SEEK_SET);
albumart = (char*)malloc(size);
fread(albumart, 1, size, fpi);
id3tag_set_albumart(lame, albumart, size);
free(albumart);
fclose(fpi);

编辑:当我调用 id3tag_set_albumart 时,lame_encode_buffer_interleaved 返回 -1,根据 lame.h 意味着 mp3buf 太小。我不认为这与“数组大小”有关,因为我将它增加到当前大小的两倍,但函数仍然返回 -1

4

0 回答 0