c语言如何读取wav文件|怎么用c语言播放特定目录里的wav文件

Ⅰ 怎么用c语言播放特定目录里的wav文件

用C语言播放音乐,一般需要额外的库或者调用系统的API函数。以Windows为例,可以通过PlaySound函数播放wav格式的音乐。示例如下,代码在vc6.0中编译通过。#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;}

Ⅱ C#中的Form1.resx(资源文件)里面存放了*.wav的音频文件,怎么读取和播放

visual studio 2010环境下在C#程序中嵌入、播放 wav音频文件 图文介绍分类: C#2012-08-24 09:25 511人阅读 评论(1) 收藏 举报声音资源文件可以放在外部调用播放,另一种方法是直接嵌入到程序里面再调用播放。想在制作的小工具程序中加入声音,而且希望整个程序就只是一个可执行文件,可采用第二种方法。 1、嵌入wav音频文件 新建一个windows窗体应用程序,在解决方案资源管理器中选中需要加入wav声音的项目,选择该项目下的【properties】文件夹中的“recourse.rexs”, 双击打开,出现下图所示画面:然后点击【添加资源】旁边的倒三角符号,选择【添加现有文件】,找到想要添加的music.wav声音文件添加进去,然后发现右边的解决方案资源管理器项目中的【resource】文件夹,里面增加了一个文件music.wav。我们在左边的resource.resx页,选中音乐文件music.wav,右下角会出现music.wav文件的属性框,如下图所示把【在编译时链接】那一项选择为【嵌入在.resx】。就完成了wav音频资源文件的嵌入。2、播放wav音频文件 使用SoundPlayer类来实现在程序开头引用库:using System.Media;然后在你想要播放音乐的地方加入代码:SoundPlayer sp = newSoundPlayer(WindowsFormsApplication1(项目名).Properties.Resources.music);sp.Play();然后调试运行试试看,是否发出你想要的声音了? 当然,你会发现生成的exe文件大了些,因为声音资源已经嵌入到程序里面了。

Ⅲ 如何用C++打开.wav音频文件并读出数据

有例子的:有源代码的。例子1:在VC中如何播放大型回WAV文件答http://school.cfan.com.cn/pro/c/2006-12-03/1165123635d26810.shtml例子2:http://www.vckbase.com/document/viewdoc/?id=1800

Ⅳ 怎样用c语言读取WAV文件振幅信息

C也能像matlab一样读取wav格式文件!用外置库libsndfile,可以读取数据,频率,通道等等以下是一段读取sample.wav,将数据存入double格式的array:#include "sndfile.h"#pragma comment(lib, "libsndfile-1.lib")void readwav(double output[length]){ SNDFILE *sf; SF_INFO info; int num_channels; int num, num_items; double *buf; int f,sr,c; int i,j; info.format = 0; sf = sf_open("sample.wav",SFM_READ,&info); if (sf == NULL){ printf("Failed to open the file.\n"); exit(-1); } f = info.frames; sr = info.samplerate; c = info.channels; printf("frames=%d\n",f); printf("samplerate=%d\n",sr); printf("channels=%d\n",c); num_items = f*c; printf("num_items=%d\n",num_items); buf = (double *)malloc(num_items*sizeof(double)); num = sf_read_double(sf,buf,num_items); sf_close(sf); printf("Read %d items\n",num); for (i = 0; i < num; i += c){ for (j = 0; j < c; ++j){ if ((i+j)<length) { output[i+j] = buf[i+j]; } } }}

Ⅳ 如何在C程序中调用音频文件

一.在程序中直接播放声音文件在VC++ 中的多媒体动态连接库中提供了一组与音频设备有关的函数。利用这些函数可以方便地播放声音。最简单的播放声音方法就是直接调用VC++中提供的声音播放函数BOOL sndPlaySound ( LPCSTR lpszSound,UINT fuSound ); 或BOOL PlaySound( LPCSTR lpszSound, HMODULE hmod, DWORD fuSound );其中参数lpszSound是需要播放声音的.W***文件的路径和文件名, hmod在这里为NULL,fuSound是播放声音的标志,详细说明请参考VC++中的帮助。 例如播放C:soundmusic.wav可以用sndPlaySound ("c:\sound\music.wav",SND_ASYNC);或PlaySound("c:\sound\music.wav",NULL, SND_ASYNC|SND_NODEFAULT );如果没有找到music.wav文件,第一种格式将播放系统默认的声音,第二种格式不会播放系统默认的声音。二.将声音文件加入到程序中在VC++的程序设计中,可以利用各种标准的资源,如位图,菜单,对话框等。同时VC++也允许用户自定义资源,因此我们可以将声音文件作为用户自定义资源加入程序资源文件中,经过编译连接生成EXE文件,实现无.W***文件的声音播放。要实现作为资源的声音文件的播放,首先要在资源管理器中加入待播放的声音文件。具体步骤入下:1.获得包含资源的模块句柄:HMODULE hmod=AfxGetResourceHandle();2.检索资源块信息:HRSRC hSndResource=FindResource(hmod,MAKEINTRESOURCE(IDR_W***E1),_T("W***E"));3. 装载资源数据并加锁:HGLOBAL hGlobalMem=LoadResource(hmod,hSndResource);LPCTSTR lpMemSound=(LPCSTR)LockResource(hGlobalMem);4.播放声音文件:sndPlaySound(lpMemSound,SND_MEMORY));5.释放资源句柄:FreeResource(hGlobalMem);


赞 (0)