STM32
直播中

冯琳

7年用户 174经验值
私信 关注
[问答]

FAT32怎么得到没有后缀名的MP3歌名怎么办

项目需要用到FAT文件系统,现在我用的是原子哥板子配套的库函数MP3程序来调,打算输出MP3长文件名,不输出后缀名,比如播放 黄昏.mp3 时就显示  黄昏  ,不要后缀。
改了一段时间没弄出来。现在改动u8 Get_File_Info(u32 dir_clust,FileInfoStruct *FileInfo,u32 type,u16 *count)函数里的:
if(item->deAttributes == 0x0f)//找到一个长文件名
     {
      we = (winentry *)(&fat_buffer[offset]);
      j = 26 *( (we->weCnt-1) & WIN_CNT);//长文件名的长度
                        if(j       {
       p = &LongNameBuffer[j];//偏移到目标地址
       for (j=0;j<10;j++) *p++ = we->wePart1[j];   
       for (j=0;j<12;j++) *p++ = we->wePart2[j];
       for (j=0;j<4;j++) *p++ = we->wePart3[j];
       if (we->weCnt & 0x40) (*(unsigned int *)p) = 0;      
       if ((we->weCnt & WIN_CNT) == 1) LongNameFlag = 1;//最后一个长文件项找到了
      }     
     }
没有用。
请各位高手指点下,在原子哥配套的库函数版本的MP3程序里,应该改动哪里可以输出没有后缀名的MP3歌名呢?谢谢!

回帖(2)

李勇俊

2020-6-10 09:31:44
不用去改这些地方了。
把你得到的字符串稍作处理即可。
方法:
1,从末尾开始向前找,把第四个字符(‘.’)改为0即可。
2,从末尾开始,向前,查找字符'.'找到这个字符后修改为0。
第二种方法比较保险。比如有的音频文件有4个后缀,.FLAC。
如果仅限MP3,第一种方法来的简单。
举报

周勇

2020-6-10 09:51:14
谢谢原子哥,成功改好了!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分