您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > libsndfile动态库在VS2015下的调用以及读取wav文件
1.创建一个控制台工程2.把libsndfile-1.lib文件拷贝到工程里面。在工程选项里面添加lib文件。项目—属性链接器—输入附加依赖项—编辑然后点击确定,应用。3.拷贝头文件sndfile.h到工程目录,添加到工程。右击头文件,添加现有项4.编写如下代码:1.#includestdio.h2.#includestdlib.h3.#includesndfile.h4.voidsave(short*b1,intn);5.intmain(intargc,char*argv[])6.{7.SF_INFOsf_info;8.SNDFILE*snd_file;9.SNDFILE*fpOut;10.SF_INFOsf_info_out;11.short*buf1;12.//float*buf1;13.sf_count_tcout;14.sf_info.format=0;15.snd_file=sf_open(argv[1],SFM_READ,&sf_info);16.printf(Using%s.\n,sf_version_string());17.printf(FileName:%s\n,argv[1]);18.printf(SampleRate:%d\n,sf_info.samplerate);19.printf(Channels:%d\n,sf_info.channels);20.printf(Sections:%d\n,sf_info.sections);21.printf(Frames:%d\n,(int)sf_info.frames);22.buf1=(short*)malloc(sf_info.frames*sizeof(short)*2);23.sf_info_out.channels=sf_info.channels;24.sf_info_out.samplerate=sf_info.samplerate;25.sf_info_out.frames=sf_info.frames;26.sf_info_out.format=(SF_FORMAT_WAV|SF_FORMAT_PCM_16|SF_ENDIAN_LITTLE);27.fpOut=sf_open(argv[2],SFM_WRITE,&sf_info_out);28.if(fpOut==NULL)29.{30.printf(openoutfilefailed\n);31.exit(1);32.}33.while(sf_read_short(snd_file,buf1,480)==480)34.{35.sf_write_short(fpOut,buf1,480);36.}37.free(buf1);38.sf_close(snd_file);39.sf_close(fpOut);40.return0;41.}输入一个*.wav文件,写的也是*.wav文件。编译通过运行的时候,提示缺少dll文件,把libsndfile-1.dll拷贝到程序运行的目录。生成的wav文件播放起来声音正常。参考出处:方法二:用法简介:官网:
本文标题:libsndfile动态库在VS2015下的调用以及读取wav文件
链接地址:https://www.777doc.com/doc-2884844 .html