怎样在EVC4.0下编程实现音频和视频文件的的播放
来源:互联网 发布:win10网络唤醒关闭 编辑:程序博客网 时间:2024/05/20 03:46
// TODO: Add your control notification handler code here
IGraphBuilder *pGraph;
// 指向Filter Graph的指针
IMediaControl *pMediaControl;
// 指向MediaControl对象的指针
IMediaEvent *pMediaEvent;
CString filePath="//Program Files//eMuseum//Socket//test.mp3";
// 初始化,使用com第一步,程序启动时执行一次即可
HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);
if (FAILED(hr))
{
// Add error-handling code here. (Omitted for clarity.)
AfxMessageBox(_T("Failed to CoInitialize"));
}
// 以下程序每次播放MP3(或其他格式)文件时调用
// 创建一个Filter Graph manager
if (SUCCEEDED(CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
IID_IGraphBuilder, (void **)&pGraph)))
{
pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl); ;
// 连接播放指定文件所需的filter
pGraph->QueryInterface(IID_IMediaEvent, (void **)&pMediaEvent);
hr=(pGraph->RenderFile(filePath, 0));
if(FAILED(hr))
{
AfxMessageBox(_T("RenderFile Failed"));
return;
}
else
{
//CClientDC dc(0);
//CDC dcAudio;
// 开始播放指定的文件
hr = pMediaControl->Run();
// 文件的播放在DirectShow中独立线程中进行,此处等待
if(SUCCEEDED(hr))
{
long evCode = 0;
pMediaEvent->WaitForCompletion(INFINITE, &evCode);
}
// MessageBox(NULL, L"点击[OK]结束播放", L"Play MP3", MB_OK);
// pMediaControl->Stop();
// 停止播放
else
{
AfxMessageBox(_T("Run Failed"));
return;
}
}
pMediaControl->Release();
// 释放对象
pMediaEvent->Release();
pGraph->Release();
// 程序结束时调用
CoUninitialize();
}
else
AfxMessageBox(_T("Failed"));
小弟最近开始做WINCE下的一个项目,现在需要编程播放音频和视频文件,在网上找资料发现主要的方法有以下3种:
1、DirectShow:这个需要自己写filter比较复杂;
2、调用Media Player控件:在对话框内嵌入一个Media Player控件,在PC机上可以很容易的运行,但是相同的方法用EVC编写的程序要在PPC上运行却老是提示找不到某个组件;
3、通过SHELLEXECUTEINFO直接调用Media Player,主要代码如下:
SHELLEXECUTEINFO sei;
ZeroMemory(&sei,sizeof(sei));
sei.cbSize = sizeof(SHELLEXECUTEINFO);
sei.hwnd = this->m_hWnd;
sei.lpFile = _T("//Windows//wmplayer.exe");
sei.lpVerb = _T("open");
sei.lpParameters=_T("//Program Files//Windows Media Player//test.mp3");
sei.nShow = SW_SHOWNORMAL;
sei.fMask = SEE_MASK_NOCLOSEPROCESS;
ShellExecuteEx(&sei);
- 怎样在EVC4.0下编程实现音频和视频文件的的播放
- 怎样在asp.net 2.0的页面中播放视频文件?
- 获取系统的图片,音频和视频文件
- 获取系统的图片,音频和视频文件
- 获取raw下的视频文件并播放
- 用DirectShow实现音视频文件的播放
- 实现多类型视频文件的播放
- 用C#怎样读取一个视频文件的播放时间
- Android中视频文件的下载和播放
- 如何在Fedora下播放mp3和多种格式视频文件
- AVI 视频文件的播放
- 音视频文件的播放
- 利用反射在Unity的EditorMode下播放音频
- 嵌入式音频播放的实现
- VS2005和EVC4字符串宏在MIPSII架构的比较
- android 音频播放 以及 二维码模块中音频播放和震动(vibrate)的实现
- 音频的采集和播放
- iOS音频播放 (六):简单的音频播放器实现
- 排序系列之(1)归并排序及C语言实现
- odbc如何读取foxpro的标记删除的记录?
- flex 各组件对应的样式属性
- HermesJMS配置
- Asp.Net引用Arcengine提供后台GIS服务
- 怎样在EVC4.0下编程实现音频和视频文件的的播放
- Delphi 中使用 ADO 方法打开 MySQL5.0 数据库并避免汉字乱码
- Spring框架的主要功能
- mp4文件格式解析(一)
- MTK平台 获取本机的SIM卡中IMSI号
- CString ,BSTR ,LPCTSTR之间关系和区别
- zju2736水仙花数
- 设置超链接格式
- 方便易拆信封设计制作