初级会员

- 积分
- 143
- 金钱
- 143
- 注册时间
- 2014-12-12
- 在线时间
- 4 小时
|
5金钱
MP3能正常播放歌曲,现在想调节音量,加入了音量调节指令后不是不出声就是出乱码,求大神们指导啊!
void MP3_Play(void)
{
FRESULT res;
FILINFO finfo;
DIR dirs;
u16 count = 0;
char j = 0;
char path[50] = {"0:/"};
char *result1, *result2, *result3, *result4;
f_mount(0, &fs);
f_opendir(&dirs, path);
if (f_opendir(&dirs, path) == FR_OK)
{
while (f_readdir(&dirs, &finfo) == FR_OK)
{
if ( finfo.fattrib & AM_ARC )
{
if( !finfo.fname[0] )
break;
// printf( " \r\n the file name is: %s \r\n", finfo.fname );
result1 = strstr( finfo.fname, ".mp3" );
result2 = strstr( finfo.fname, ".mid" );
result3 = strstr( finfo.fname, ".wav" );
result4 = strstr( finfo.fname, ".wma" );
if ( result1!=NULL || result2!=NULL || result3!=NULL || result4!=NULL )
{
res = f_open( &myfsrc, finfo.fname, FA_OPEN_EXISTING | FA_READ );
mybr = 1;
TXDCS_SET( 0 );
for (;;)
{
res = f_read( &myfsrc, buffer, sizeof(buffer), &mybr );
Vs1003_CMD_Write(11,VOICE); //加了这句音量调节的就不行了,是加错地方了还是加的方式不对,还是其他原因?
if ( res == 0 )
{
count = 0;
while ( count < 512)
{
if ( DREQ != 0 )
{
for (j=0; j<32; j++ )
{
while(DREQ == 0);
TXDCS_SET( 0 );
VS1003_WriteByte( buffer[count] );
TXDCS_SET( 1 );
count++;
}
}
}
}
if (res || mybr == 0) break;
}
count = 0;
while ( count < 2048 )
{
if ( DREQ != 0 )
{
for ( j=0; j<32; j++ )
{
VS1003_WriteByte( 0 );
count++;
}
}
}
count = 0;
TXDCS_SET( 1 );
f_close(&myfsrc);
}
}
} /* end of while */
}
} |
最佳答案
查看完整内容[请看2#楼]
回复【5楼】羁绊:
---------------------------------
你检测旋钮的函数里边就行了,判断完加减后就调用
|