IMedia接口播放视频文件,和播放声音文件有什么特别地方要注意吗,
为何我的这段程序,只能播放声音文件,换做视频文件时,IMEDIAUTIL_CreateMedia(pMe->pIMediaUtil,&music,&pMe->pMedia),总是创建不了对象,
代码如下:
- C/C++ code
// lab 2static void PlayMusic(mymedia* pMe){ AEEMediaData music; AEERect rect; music.clsData = MMD_FILE_NAME; music.pData = "1.mp4";//这里改成视频格式的文件就播不了,MP3的没问题. music.dwSize = 0; if(SUCCESS != ISHELL_CreateInstance(pMe->pIShell,AEECLSID_MEDIAUTIL,(void **)&pMe->pIMediaUtil)) return; if(SUCCESS != IMEDIAUTIL_CreateMedia(pMe->pIMediaUtil,&music,&pMe->pMedia)) return ; //if(ISHELL_CreateInstance(pMe->pIShell,AEECLSID_MEDIAMIDI,(void**)&pMe->pMedia) != SUCCESS) // return; SETAEERECT(&rect,0,0,50,50); IMEDIA_SetRect(pMe->pMedia,&rect,&rect); IMEDIA_SetMediaData(pMe->pMedia,&music); IMEDIA_EnableFrameCallback(pMe->pMedia, TRUE); IMEDIA_RegisterNotify(pMe->pMedia,(PFNMEDIANOTIFY)CApp_MediaEventNotify,pMe); IMEDIA_Play(pMe->pMedia);}static void CApp_MediaEventNotify(mymedia *pme, AEEMediaCmdNotify *pcn){switch (pcn->nStatus) { case MM_STATUS_FRAME: { IBitmap * pFrame; AEEBitmapInfo bi; IMEDIA_GetFrame(pme->pMedia, &pFrame); IBITMAP_GetInfo(pFrame, &bi, sizeof(bi)); IDISPLAY_BitBlt(pme->a.m_pIDisplay, 0, 0, bi.cx, bi.cy, pFrame, 0, 0, AEE_RO_COPY); IDISPLAY_Update(pme->a.m_pIDisplay); IBITMAP_Release(pFrame); break; } }}
------解决方案--------------------------------------------------------
需要安装相关的DLL和头文件吧
------解决方案--------------------------------------------------------
我也是这个问题,后来发现返回内存不够的错误!
------解决方案--------------------------------------------------------
保险的办法是先
handler = ISHELL_GetHandler(pShell,AEECLSID_MediaVideo, “MP4”) ;
然后
ISHELL_CreateInstance(pShell, handler, (void **)&pIMedia);
看看pIMedia 能否创建成功
------解决方案--------------------------------------------------------
来学习一下!
------解决方案--------------------------------------------------------
呵呵,学习了,
------解决方案--------------------------------------------------------
学习下!