我正在尝试将 mp3 文件读入缓冲区,将其写入另一个 mp3 文件并最终播放。计算机在 Windows xp 上运行。但是当我尝试播放文件时,它会抛出一条错误消息,上面写着“不支持输入媒体格式”。输入 mp3 文件大小为 7.31 MB,输出文件大小为 7.34 MB。读取输入文件后的缓冲区大小为 7671370。
我已经发布了用于完成解释任务的代码片段。请在这里指出错误。
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <windows.h>
#include <mmsystem.h>
#include <sstream>
#include <fstream>
int main () {
FILE * iFile, * oFile;
long lSize;
char * buffer;
size_t result;
iFile = fopen ( "Ajn1.mp3" , "r" );
if (iFile==NULL) {fputs ("File error",stderr); }
oFile = fopen ( "Ajn2.mp3" , "w" );
if (oFile==NULL) {fputs ("File error",stderr); }
fseek (iFile , 0 , SEEK_END);
lSize = ftell (iFile);
rewind (iFile);
buffer = (char*) malloc (sizeof(char)*lSize);
if (buffer == NULL) {fputs ("Memory error",stderr); }
result = fread (buffer,1,lSize,iFile);
printf("%d\n",result);
fwrite(buffer,lSize,1,oFile);
fclose (iFile);
free (buffer);
printf("%d",lSize);
system("pause");
return 0;
}