stm32f407 wm8978录音问题求指导,谢谢!

2019-07-20 10:46发布

本帖最后由 skyqiu 于 2016-8-29 17:19 编辑

wm8978录音,如何设置单声道、立体声模式?原子的代码是立体声的吧?
如果要改为单声道,除了这个初始化WAV头需要修改,还有其他什么地方需要修改吗?最好能详细点,求指导,谢谢!

//初始化WAV头.
void recoder_wav_init(__WaveHeader* wavhead) //初始化WAV头                           
{
        wavhead->riff.ChunkID=0X46464952;        //"RIFF"
        wavhead->riff.ChunkSize=0;                        //还未确定,最后需要计算
        wavhead->riff.Format=0X45564157;         //"WAVE"
        wavhead->fmt.ChunkID=0X20746D66;         //"fmt "
        wavhead->fmt.ChunkSize=16;                         //大小为16个字节
        wavhead->fmt.AudioFormat=0X01;                 //0X01,表示PCM;0X01,表示IMA ADPCM
         wavhead->fmt.NumOfChannels=2;//双声道 单声道为1?
         wavhead->fmt.SampleRate=SampleRate;                //16Khz采样率 采样速率
          wavhead->fmt.ByteRate=wavhead->fmt.SampleRate*4;//字节速率=采样率*通道数*(ADC位数/8)   单声道设置为wavhead->fmt.SampleRate*2
         wavhead->fmt.BlockAlign=4;                        //块大小=通道数*(ADC位数/8)               单声道为2?
         wavhead->fmt.BitsPerSample=16;                //16位PCM
       wavhead->data.ChunkID=0X61746164;        //"data"
         wavhead->data.ChunkSize=0;                        //数据大小,还需要计算  
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
正点原子
1楼-- · 2019-07-20 11:46
这里修改是第一步,在写入WAV音频数据的时候,还要小改一下,我们例程是写入了双声道的数据的(虽然两个声道数据完全一样),你要做的就是去掉一个声道数据的写入。
skyqiu
2楼-- · 2019-07-20 12:26
 精彩回答 2  元偷偷看……
fengweibo3
3楼-- · 2019-07-20 13:36
问题解决了没有,我也想改,不知道如何下手呐
skyqiu
4楼-- · 2019-07-20 14:44
 精彩回答 2  元偷偷看……
skyqiu
5楼-- · 2019-07-20 17:09
 精彩回答 2  元偷偷看……
changbiao
6楼-- · 2019-07-20 19:04
问题解决了吗兄弟,我也碰到这个问题,变成单声道,声音就变行了

一周热门 更多>