在C中更改WAV文件

时间:2015-06-15 08:15:21

标签: c file wav

我试图用C改变WAV文件因子。 我需要使用因子i来从用户获取多个所有字节。 我写了一个函数读取2个字节并返回一个短的int类型。 但我可以将OUTPUT文件作为我的示例程序中的OUT文件。 请帮助**附加代码

void modify_data(unsigned char*buffer, char *name, long filelen, float factor){
short  temp=0;
char byte[2]={0};
FILE *fp=NULL;
int i,big=0;
unsigned int check=0;
char *str=strtok(name,".");

sprintf(name,"%s‫‪_modified‬‬.wav",name);
fp=fopen(name,"wb");
fwrite(buffer,1,44,fp);
for (i=44;i<filelen;i+=2){
    check=0;
    temp= (short)read_short(i,buffer);

    printf("%hu\n",temp);
    /*check=(int)(temp | check);
    check=check*factor;
    printf("%d\n",check);

    //getchar();
*/
    if ((roundf(temp*factor))>= MAX16BIT){
     temp=MAX16BIT;
    printf("True\n");
    } 
    else {  
        if  ((roundf(temp*factor)) <= -1*MAX16BIT) temp=-1*MAX16BIT;
        else temp=(short)round((double)(temp*factor));
    }
    byte[0] = (temp & 0xFF);
        byte[1] = ((temp & 0xFF00)>>8);
    fwrite(byte,1,2,fp);
    temp=0;
    }
fclose(fp);
}

0 个答案:

没有答案