关于MCI控制的十万个为什么之一,希望渺茫还是期待高手现身

shu 2002-09-17 05:16:56
以下是我用到的打开、播放、定位程序:
open:
//Open the device
MCI_DGV_OPEN_PARMS OpenParms;
OpenParms.lpstrDeviceType="MPEGVideo2";
OpenParms.lpstrElementName=(LPSTR) Filename.GetBuffer(0);
OpenParms.wDeviceID=NULL;
OpenParms.hWndParent=pWnd->m_hWnd;
OpenParms.dwStyle=WS_CHILD|WS_VISIBLE;
if (mciSendCommand (NULL,MCI_OPEN, (DWORD)(MCI_OPEN_ELEMENT|MCI_DGV_OPEN_PARENT),(DWORD)(LPVOID)&OpenParms))
return FALSE;
m_wDeviceID=OpenParms.wDeviceID;
m_bOpned=TRUE;

//Set the format to frames
MCI_DGV_SET_PARMS SetParms;
SetParms.dwTimeFormat=MCI_FORMAT_MILLISECONDS;//FRAMES;
if (mciSendCommand (m_wDeviceID,MCI_SET,MCI_SET_TIME_FORMAT,(DWORD) (LPVOID)&SetParms))
{
close ();
return FALSE;
}
//Seek to the beginning of the JuneAVIVideo
mciSendCommand (m_wDeviceID,MCI_SEEK,MCI_SEEK_TO_START,NULL);


play:

PlayParms.dwCallback=(DWORD)hParent;//可以为空此时在任意窗口中播放
PlayParms.dwFrom=GetCurrentFrame();
DWORD dwFlags=MCI_FROM|MCI_MCIAVI_PLAY_WINDOW ;
if (mciSendCommand (m_wDeviceID,MCI_PLAY,dwFlags,(DWORD)(LPVOID)&PlayParms))
return FALSE;

Seek:

MCI_SEEK_PARMS SeekParms;
SeekParms.dwTo = nFrame;
if (mciSendCommand (m_wDeviceID,MCI_SEEK,MCI_TO | MCI_WAIT,(DWORD)(LPVOID) &SeekParms))
return FALSE;


问题是有的MPEG4 AVI能正常播放和SEEK,但个别的不能SEEK,SEEK后就不出声了!
请帮忙看看,到底怎么回事?
...全文
58 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
shu 2003-05-09
  • 打赏
  • 举报
回复
强制结帖!
无奈!
司马青衫依旧 2002-09-18
  • 打赏
  • 举报
回复
我一直很想知道有关MCI的详细讲解!
up
Hanzo 2002-09-17
  • 打赏
  • 举报
回复
不会,up

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧