陆其明吧 关注:195贴子:6,655
  • 2回复贴,共1

代码分析下,我用这段代码获得的文件长度,但再次用CFile::open就无

取消只看楼主收藏回复

CoInitialize(NULL);
LONGLONG duration=0; 
cstring convert;///需要播放的文件
IGraphBuilder* pshow;  
IMediaSeeking* pMS;

CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC_SERVER,
IID_IGraphBuilder,(void**)&pshow);

pshow->QueryInterface(IID_IMediaSeeking,(void**)&pMS);

pshow->RenderFile(convert.AllocSysString(),NULL);

if(!pMS)  return ;
if(S_OK != pMS->IsFormatSupported(&TIME_FORMAT_MEDIA_TIME))
return ;
GUID   guidOFormat;

if(FAILED(pMS->GetTimeFormat(&guidOFormat)))
return ;

if(FAILED(pMS->SetTimeFormat(&TIME_FORMAT_MEDIA_TIME)))
return ;
if(FAILED(pMS->GetDuration(&duration)))
return ;
if(guidOFormat != TIME_FORMAT_MEDIA_TIME)
{
if(FAILED(pMS->SetTimeFormat(&guidOFormat);))
return ;
}
pMS->Release();
pshow->Release();

CoUninitialize();


IP属地:福建1楼2006-08-18 16:03回复
    我用这段代码获得的文件长度,但再次用CFile::open就打开该文件时,有些文件可以打开,有些就不行?


    IP属地:福建2楼2006-08-18 16:04
    回复
      2026-02-23 23:01:57
      广告
      不感兴趣
      开通SVIP免广告
      陆老师,你的<开发指南>第五章的简单播放器也是这个问题,
      用RenderFile之后,就算停止播放也无法用CFile::Open打开该文件
      有什么办法解决吗;


      IP属地:福建3楼2006-08-18 16:31
      回复