wav文件头读取
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57// An highlighted block #include <stdio.h> #include <stdint.h> #include <stdlib.h> struct WAV_Format { uint32_t ChunkID; /* "RIFF" */ uint32_t ChunkSize; /* 36 + Subchunk2Size */ uint32_t Format; /* "WAVE" */ /* sub-chunk "fmt" */ uint32_t Subchunk1ID; /* "fmt " */ uint32_t Subchunk1Size; /* 16 for PCM */ uint16_t AudioFormat; /* PCM = 1*/ uint16_t NumChannels; /* Mono = 1, Stereo = 2, etc. */ uint32_t SampleRate; /* 8000, 44100, etc. */ uint32_t ByteRate; /* = SampleRate * NumChannels * BitsPerSample/8 */ uint16_t BlockAlign; /* = NumChannels * BitsPerSample/8 */ uint16_t BitsPerSample; /* 8bits, 16bits, etc. */ /* sub-chunk "data" */ uint32_t Subchunk2ID; /* "data" */ uint32_t Subchunk2Size; /* data size */ }; int main(void) { FILE *fp = NULL; struct WAV_Format wav; fp = fopen("test.wav", "rb"); if (!fp) { printf("can't open audio filen"); exit(1); } fread(&wav, 1, sizeof(struct WAV_Format), fp); printf("ChunkID t%xn", wav.ChunkID); printf("ChunkSize t%dn", wav.ChunkSize); printf("Format tt%xn", wav.Format); printf("Subchunk1ID t%xn", wav.Subchunk1ID); printf("Subchunk1Size t%dn", wav.Subchunk1Size); printf("AudioFormat t%dn", wav.AudioFormat); printf("NumChannels t%dn", wav.NumChannels); printf("SampleRate t%dn", wav.SampleRate); printf("ByteRate t%dn", wav.ByteRate); printf("BlockAlign t%dn", wav.BlockAlign); printf("BitsPerSample t%dn", wav.BitsPerSample); printf("Subchunk2ID t%xn", wav.Subchunk2ID); printf("Subchunk2Size t%dn", wav.Subchunk2Size); fclose(fp); return 0; }
最后
以上就是怡然酸奶最近收集整理的关于wav文件头读取的全部内容,更多相关wav文件头读取内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复