第四部分:视频播放与GPS轨迹文件同步

来源:互联网 发布:嵌入式linux系统 编辑:程序博客网 时间:2024/06/05 20:11

   这一部分是所有工作里最容易的事情。主要是在启动播放文件的时候搜索当前的KML文件是否存在,如果存在就LOAD出来到内存里,代码如下:
bool Cdlg_demoDlg::search_KMLfile(std::string filename)
{
 int i=0;
 bool bfind = 0;
 std::string k_name;
 std::string::size_type pos = filename.rfind('.');
 std::string v_name = filename.substr( 0,pos );
 
 if(k_count == 0)
 return 0;
 
 for(i=0;i<k_count;i++)
 {
  k_name = kml_playlistpath[i].c_str();
  pos = k_name.rfind('.');
  k_name = k_name.substr( 0,pos );
  if(k_name == v_name)
  {
   bfind = 1;
   break;
  }
 }

 if(bfind)
  return 1;
 else
  return 0;
}

void Cdlg_demoDlg::LoadGpsData(void* fs)
{
 CvFileStorage* Kml = (CvFileStorage*)fs;
 int kml_no = 0,i=0;
 char *ptr = 0,kml_co[1024]={"/0"};
 int item_num = 0,cont = 0;

 for( ptr = Kml->KML_name; *ptr != '/0'; ptr++ )
           kml_no += *ptr == '/n';

 for(ptr = Kml->KML_name;;ptr++)
 {
  if(*ptr!='/n')
  m_gd[item_num].time[i++] = *ptr;
  else
  {
   m_gd[item_num].time[i++] = '/0';
   m_gd[item_num].TimePos = ((m_gd[item_num].time[0]-0x30)*10+m_gd[item_num].time[1]-0x30)*3600//hour
    +((m_gd[item_num].time[3]-0x30)*10+m_gd[item_num].time[4]-0x30)*60//min
    +((m_gd[item_num].time[6]-0x30)*10+m_gd[item_num].time[7]-0x30);//second
   item_num++;
   i=0;
  }
  
  if(*ptr=='/0')
  break;
 }

 item_num = 0;i=0;
 for(ptr = Kml->KML_co;;ptr++)
 {
  if(*ptr!='/n')
  {
     if(*ptr!=','&&cont == 0)
     m_gd[item_num].longitude[i++] = *ptr;
     
     if(*ptr==','&&cont == 0)
     {
      cont++;
      m_gd[item_num].longitude[i++] = '/0';
      i = 0;
      continue;
     }

     if(*ptr!=','&&cont == 1)
     m_gd[item_num].latitude[i++] = *ptr;
     
     if(*ptr==','&&cont == 1)
     {
      cont++;
      m_gd[item_num].latitude[i++] = '/0';
      i = 0;
      continue;
     }

     if(*ptr!=','&&cont == 2)
     m_gd[item_num].altitude[i++] = *ptr;
     
     if(*ptr==','&&cont == 2)
     {
      cont=0;
      m_gd[item_num].altitude[i++] = '/0';
      i = 0;
     }

  }
  else
  {m_gd[item_num].altitude[i++] = '/0';item_num++;i=0;cont = 0;}
    
  if(*ptr=='/0')
  break;
 }
}
视频播放与GPS轨迹文件同步就类似以前做MP3程序里的歌词同步,在播放的同时检测GPS数据里时刻记录与当前视频文件的时刻对应就好,用一个全局TIMER来实现动态刷新。

原创粉丝点击