⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wave.c

📁 c语言实现读取.wav格式文件的头部
💻 C
字号:

#include "Wave.h"

// WaveHeader.c


void main(int argc, char **argv)
{
	FILE *fpWav=NULL;
	unsigned long size;
	wav_pcm_header44 hwav;
	short *data;
	int i;
	
	
	/*
	*  Get wave header information 
	*/
	//fpWav = fopen(argv[1], "rb");
	fpWav = fopen("music_source.wav", "rb");
	
	if (fpWav)
	{
		fread(&hwav, sizeof(wav_pcm_header44), 1, fpWav);
		
		/* Check wave header */
		if ( (0==memcmp(hwav.ChunkID, "RIFF", 4)) &&(0==memcmp(hwav.Format, "WAVE", 4)) &&
			(0==memcmp(hwav.SubChunk1ID, "fmt ", 4)) &&(0==memcmp(hwav.SubChunk2ID, "data", 4)) &&(1==hwav.AudioFormat))
		{
			printf("Wave audio data format:\n");
			printf("Channel number: %d\n", hwav.NumChannels);
			printf("SampleRate: %dHz\n", hwav.SampleRate);
			printf("BitsPerSample: %dbits\n", hwav.BitsPerSample);
			printf("Audio data size:%d\n", hwav.SubChun2Size);
		}
		/*
		*  Get wave data 
		*/
		data=(short*)malloc(sizeof(short)*hwav.SubChun2Size);
		for (i=0;i<hwav.SubChun2Size;i++)
		{
			fread(&data[i], sizeof(wav_pcm_header44), 1, fpWav);
		}	
		fclose(fpWav);
		fpWav = NULL;
	}
	else
	{
		printf("Open wave file %s failed!\n", argv[1]);
	}
	
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -