Esempio n. 1
0
void wav_pre_read(void)
{
	u32 index = 0;

	flash_bytes_read(index, (u8 *)buffer1, 0x100);
	
	while(WaveParsing());
	
  	WaveLen = WAVE_Format.DataSize;
	
  	I2S_Freq_Config(WAVE_Format.SampleRate);	
}
Esempio n. 2
0
void Wavplay(void)
{
	FATFS fatfs;            
	FIL fileR;
	UINT BytesRead;	
	u8 i=0;

  	f_mount(0, &fatfs);
 
	f_open(&fileR, "0:/wav/1.wav" , FA_READ);
	f_read(&fileR, buffer1, 1024, &BytesRead);
	while(WaveParsing()) printf("file read error");

  	WaveLen = WAVE_Format.DataSize;
  	AUDIO_Init(WAVE_Format.SampleRate);
  	f_lseek(&fileR, WaveCounter);//跳过文件头
  	f_read(&fileR, buffer1, 1024, &BytesRead); 
  	f_read(&fileR, buffer2, 1024, &BytesRead);
  	Audio_MAL_Play((u32)buffer1, 1024);
  	buffer_switch=1;
  	XferCplt=0;  
  	while(WaveLen!=0)
  	{ 
      	while(XferCplt==0);
      	XferCplt=0;
      	if(buffer_switch==0)
      	{
        	Audio_MAL_Play((u32)buffer1,1024);//从buffer1播放
        	f_read(&fileR,buffer2,1024,&BytesRead);//填充buffer2
        	buffer_switch=1;
      	}
      	else 
      	{   
        	Audio_MAL_Play((u32)buffer2,1024);//从buffer2播放
        	f_read(&fileR,buffer1,1024,&BytesRead);//填充buffer1
        	buffer_switch=0;
      	} 
		i++;
		if(i==100)
		{
			i=0;
		}
  	}
}