求助,如何播放内存中的多媒体文件?解决有加分。

baoyz 2010-07-03 09:53:20
我已经把文件读取到内存,转成流了。 现在想把多媒体文件(avi,WMV,MPG……)播放出来。该怎么做?
找到的代码都是直接播放硬盘文件的,没有播放流或者内存文件的。

m_hMem = GlobalAlloc(GMEM_FIXED, len);
pmem = (BYTE*)GlobalLock(m_hMem);
memcpy(pmem, ch, len);
delete [] ch;

CreateStreamOnHGlobal(m_hMem, TRUE, &pstm);
m_pImage = Image::FromStream(pstm); //现在这里是 图形文件,以后会是WMV一类的文件

GlobalUnlock(m_hMem);
pmem = new BYTE[2];
delete []pmem;
pstm->Release();


如有可行方案,解决后加100分。
...全文
167 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
baoyz 2010-07-16
  • 打赏
  • 举报
回复
最近来工作了。以后再试,先结贴了。
xiaoyilong19 2010-07-13
  • 打赏
  • 举报
回复
不需要,只要安装directshow 单独的开发包就好,
baoyz 2010-07-10
  • 打赏
  • 举报
回复
谢谢各位。我先试试看。是不是要安装directx sdk?
xiaoyilong19 2010-07-08
  • 打赏
  • 举报
回复
顶楼上的, 这个建议可行,
SnHnBn 2010-07-05
  • 打赏
  • 举报
回复
这个简单,实现自己的source push filter,参考DirectShow 中自带的例子,有一个就是从内存读数据的源Filter,稍微修改一下就行了
蒋晟 2010-07-03
  • 打赏
  • 举报
回复
得看文件格式,DirectShow支持比较多的文件格式。
蒋晟 2010-07-03
  • 打赏
  • 举报
回复
找一个支持mms协议的播放器,再写一个mms服务器在本机播放
baoyz 2010-07-03
  • 打赏
  • 举报
回复
先谢谢各位了。

我现在要问的是怎么把内存里的流或内存映射文件关联到播放器上去,播放?
我原来用activemovie2,做的媒体播放器已经能放硬盘文件了,但是不知怎么放内存里的文件。
activemovie2打开文件的接口就一个void CActiveMovie2::SetFileName(LPCTSTR lpszNewValue)
没有别的。
hankcs 2010-07-03
  • 打赏
  • 举报
回复
关注,有意思的问题
雪影 2010-07-03
  • 打赏
  • 举报
回复
安装ffdshow,可以使用DirectShow播放绝大部分音视频格式

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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