我整合了探索者视频播放,音乐播放,图片浏览的功能,并在视频播放函数里添加了自己的文件列表显示代码V_LIST:
LCD_Clear(BLACK);
POINT_COLOR=WHITE;
Show_Str(207,303,32,16,"返回",16,1);
i=totavinum/10;//一个页面10个文件,
if(totavinum%10) i++;//共i个页面
curindex=(j-1)*10;//当前页面第一个文件索引
if(j==i) k=totavinum;//当前页面最后一个文件索引
else k=j*10;//当前页面最后一个文件索引
res=f_opendir(&vdir,"0:/VIDEO");
for(;curindex<k;curindex++)
{
if(res==FR_OK)
{
dir_sdi(&vdir,vindextbl[curindex]);
res=f_readdir(&vdir,&vfileinfo);
if(res!=FR_OK||vfileinfo.fname[0]==0) break;
fn=(u8*)(*vfileinfo.lfname?vfileinfo.lfname:vfileinfo.fname);
buf=mymalloc(SRAMIN,100);
sprintf((char*)buf,"%s",fn);
Show_Str(0,(curindex%10)*32,lcddev.width-10,16,buf,16,1);//
myfree(SRAMIN,buf);
}
}
buf=mymalloc(SRAMIN,100);//
sprintf((char*)buf,"%d/%d",j,i);//
Show_Str(0,303,80,16,buf,16,1);
myfree(SRAMIN,buf);
ai_load_picfile("0:/SYSTEM/up.bmp",206,0,32,32,1); //翻页图标
ai_load_picfile("0:/SYSTEM/down.bmp",206,271,32,32,1);//翻页图标
然后在一个死循环里面检测触摸屏状态,决定程序去向
while(1)
{
curindex=0;
tp_dev.scan(0);
if(tp_dev.sta&TP_PRES_DOWN)
{
if(tp_dev.x[0]<lcddev.width&&tp_dev.y[0]<lcddev.height)
{
if(tp_dev.x[0]>207&&tp_dev.y[0]>303) //退出
{
myfree(SRAMIN,vfileinfo.lfname);
myfree(SRAMIN,pname);
myfree(SRAMIN,vindextbl);
return 0;
}
if(tp_dev.x[0]>206&&tp_dev.y[0]>0&&tp_dev.y[0]<32) //向上翻页
{
if(i>1)
{
j--;
if(j==0) j=i;
goto V_LIST;
}
}
现在问题是 加入goto V_LIST;语句后视频便不能播放,屏幕一直在闪,而音乐播放和图片浏览用这个方法则没问题,请问是RAM不够用了吗,还是别的什么原因
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>