C语言怎么输出mp3的二进制编码

Python09

C语言怎么输出mp3的二进制编码,第1张

使用fopen以二进制只读方式打开mp3文件,用fseek求得文件大小,申请一片相应大小的内存空间用作缓冲区,然后将文件整个读入到缓冲区中。

    //二进制方式打开文件  

    FILE* fp = fopen("example.mp3","rb")  

    if(NULL == fp)

    {  

        printf("Unable to open mp3 file.\n")  

        exit(1)

    }  

  

    //求得文件的大小  

    fseek(fp, 0, SEEK_END)  

    int size = ftell(fp)  

    rewind(fp)  

  

    //申请一块能装下整个文件的空间  

    char* buffer = (char*)malloc(sizeof(char)*size)  

  

    //读文件  

    fread(buffer,size,1,fp)

用C语言播放音乐,一般需要额外的库或者调用系统的API函数

以Windows为例,可以通过PlaySound函数播放wav格式的音乐。示例如下:

#include<stdio.h>

#include<windows.h>

#include<mmsystem.h>

#pragma comment(lib, "WINMM.LIB")

int main()

{

PlaySound(TEXT("1.wav"),0,SND_FILENAME) //1.wav是要播放的音乐文件

return 0

}

如果想播放mp3音乐可以使用如下代码。

注意:生成程序后,请在cmd中执行此程序,不要在vc/vs的IDE中运行。

#include <windows.h>

#include <mmsystem.h>

#include <stdio.h>

#pragma comment(lib, "Winmm.lib")

int main(int argc, char *argv[])

{

     //绝对地址形式

    TCHAR fileName[]="ganlusi.mp3"

    TCHAR shortName[MAX_PATH]

    GetShortPathName(fileName,shortName,sizeof(shortName)/sizeof(TCHAR))

    TCHAR cmd[MAX_PATH+10]

    wsprintf(cmd,"play %s",shortName)

    mciSendString(cmd,NULL, 0, NULL)

    Sleep(5 * 60 * 1000) //这里是防止一播放就结束做的延迟

      return 0

}