完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
原子哥你好:
我移植的咱们的MP3代码,有些歌曲名字是可以显示,但是在选中该歌曲时是播放不了,向下面跟的话问题定位到这个函数: WCHAR ff_convert ( /* Converted code, 0 means conversion error */ WCHAR src, /* Character code to be converted */ UINT dir /* 0: Unicode to OEMCP, 1: OEMCP to Unicode */ ) { // const WCHAR *p;//u16 *p; WCHAR c;//u16 c; int i, n, li, hi; u8 temp[2]; u16 *t=(u16*)temp; if (src < 0x80) { /* ASCII */ c = src; } else { if (dir) { /* OEMCP to unicode */ // p = oem2uni; hi = ftinfo.oem2uniaddr / 4 - 1;//这里变更oem2uni.bin文件的大小 } else { /* Unicode to OEMCP */ // p = uni2oem; hi = ftinfo.uni2oemaddr / 4 - 1;//这里变更uni2oem.bin文件的大小 } li = 0; for (n = 16; n; n--) { i = li + (hi - li) / 2;//文件偏移值 //从flash中获取码表数据 if(dir)SPI_Flash_Read(temp,((i*2*2)+ftinfo.oem2uniaddr),2);//从0开始读出8字节地址数据 else SPI_Flash_Read(temp,((i*2*2)+ftinfo.uni2oemaddr),2);//从0开始读出8字节地址数据 if (src == t[0]) break; if (src > t[0]) li = i; else hi = i; } if(dir)SPI_Flash_Read(temp,((i*2*2+2)+ftinfo.oem2uniaddr),2);//从0开始读出8字节地址数据 else SPI_Flash_Read(temp,((i*2*2+2)+ftinfo.uni2oemaddr),2);//从0开始读出8字节地址数据 c = n ? t[0] : 0; } return c; } 当去索引oem2uni.bin字库时,最炫民族风这首歌曲的“炫”字的汉字编码找不到,所以导致最炫民族风这首歌播放不了,实际测试oem2uni.bin里面是含有“炫”(0xECC5)字码的。感觉是二分查找这样索引是不是索引不完全。我的字库是存在外部flash的。还请原子哥帮试试,或者帮分析分析,小弟在此谢谢了! |
|
相关推荐
2个回答
|
|
我们例程运行良好啊
|
|
|
|
谢谢原子哥的回复。可以放“最炫名族风这首歌”是吧,这就奇怪了,我用咱们最初的程序也不行,难道给外部硬件flash有关系。或者原子哥能给我下你最新的例程吗,在此先谢谢了
|
|
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 08:34 , Processed in 0.567930 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号