又是视频播放器问题

2019-07-20 16:51发布

我整合了探索者视频播放,音乐播放,图片浏览的功能,并在视频播放函数里添加了自己的文件列表显示代码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不够用了吗,还是别的什么原因
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。