新手上路
- 积分
- 23
- 金钱
- 23
- 注册时间
- 2017-12-20
- 在线时间
- 5 小时
|

楼主 |
发表于 2018-1-3 11:11:35
|
显示全部楼层
本帖最后由 Dahuang 于 2018-1-3 11:24 编辑
是有差异的,发现是没有DMA对齐的原因。在 mp3_play_song()函数的补充数据部分这样修改:
if(bytesleft<MAINBUF_SIZE*2)//
{
i = 0;
i=(uint32_t)(bytesleft)&3; //
if(i) i=4-i; //
memmove(buffer+i,readptr,bytesleft);//
f_read(audiodev.file,buffer+bytesleft+i,MP3_FILE_BUF_SZ-bytesleft-i,&br);//
if(br<MP3_FILE_BUF_SZ-bytesleft-i)
{
memset(buffer+bytesleft+br+i,0,MP3_FILE_BUF_SZ-bytesleft-i-br);
}
bytesleft=MP3_FILE_BUF_SZ-i;
readptr=buffer+i;
}
之后,发现:
播放没有ID3信息的MP3可以正常播放了。
测试有ID3信息的还是不正常。
|
|