6909|13

80

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

eVC里,怎样调用Windows media player(系统已有)来播放一段mp3音乐? [复制链接]

eVC里,怎样调用Windows media player(系统已有)
来播放一段mp3音乐?

谢谢大牛们!

最新回复

不错不错~  详情 回复 发表于 2010-4-14 21:23
点赞 关注

回复
举报

65

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
楼主是想让你的模拟器自带的Windows media player组件来播放吗?

 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
不太明白问题的意思,歧义太多了,如果是打开media player播放,直接用命令行就可以。
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

4
 
是不是调用ocx 可以啊
定植的时候可以选的
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

5
 
如果media player是默认播放器的话
SHELLEXECUTEINFO sei;       
sei.cbSize = sizeof(SHELLEXECUTEINFO);
sei.hwnd = this->m_hWnd;;
sei.lpVerb = _T("open");
sei.lpFile = _T("test.mp3");
sei.lpDirectory = _T("\\");
sei.nShow = SW_SHOWNORMAL;
ShellExecuteEx(&sei);
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

6
 
#include "stdafx.h"
#include
#include

#pragma comment (lib,"Ole32.lib")
#pragma comment (lib,"Strmiids.lib")

void TestMP3(void);

int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR    lpCmdLine,
int       nCmdShow)
{
// TODO: Place code here.
TestMP3();
return 0;
}
void TestMP3()
{
IGraphBuilder *pGraph;
/* 指向Filter Graph的指针 */
    IMediaControl *pMediaControl;
/* 指向MediaControl对象的指针 */
/* 初始化,程序启动时执行一次即可 */
CoInitialize(NULL);
/**************************************************************************/
/* 以下程序每次播放MP3(或其他格式)文件时调用 */  
/* 创建一个Filter Graph manager */
CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC, IID_IGraphBuilder, (void **)&pGraph);
    pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl);
/* 连接播放指定文件所需的filter */
pGraph->RenderFile(L"\\test.mp3", NULL);
/* 开始播放指定的文件 */
pMediaControl->Run();
/* 文件的播放在DirectShow中独立线程中进行,此处等待 */
MessageBox(NULL, L"点击[OK]结束播放", L"Play MP3", MB_OK);
pMediaControl->Stop();
/* 停止播放 */
pMediaControl->Release();
/* 释放对象 */
pGraph->Release();
    /**************************************************************************/
/* 程序结束时调用 */
CoUninitialize();
}
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

7
 
up
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

8
 
WinCE4.2 操作系统里自带的 Windows Media Player 控件是 6.4版本,根本不是它界面上显示的 9.0 版本。这个WinCE4.2 操作系统里的 6.4 控件跟 Windows2000 下的 6.4 版本一模一样。明确以上两点后,一切就好办了!

首先,在PC机的[开始]-[运行]里执行以下命令:
regsvr32 c:\windows\system32\wmp.dll /u
这句的意思就是卸载掉 Windows Media Player 9.0 版本的控件的注册。然后,在PC机的[开始]-[运行]里执行以下命令:
regsvr32 c:\windows\system32\msdxm.ocx
这句的意思是注册 Windows Media Player 6.4 版本的控件。

  接下来,打开 eMbedded Visual C++ 4.0,建立一个MFC对话框工程,在向导中把允许 ActiveX 控件打上钩,一路下一步。完成向导后,选择 [Project] 菜单中的 [Add to project] 中的 [Components and controls],弹出 Componests and Controls Gallery 对话框,打开 Registered ActiveX Controls 文件夹,显示出好几项来,最后面一项就是 [Windows Media Player],选中后点击[Insert]按钮,弹出Confirm Classes对话框,点OK按钮确定。这时,在对话框编辑窗口中的工具栏中就应该有 Windows Media Player 控件了,应该在最低下那个,好像显示的是个叉。
注意: 当你打开Registered ActiveX Controls文件夹后,如果里面没有出现Windows Media Player,那么你需要点旁边的 Add Control 按钮,定位到 c:\windows\system32\msdxm.ocx,完成后就会显示出来。

  现在,从工具栏中拖一个 Windows Media Player 控件到对话框中,然后在 ClassWizard 中建立一个指向 Windows Media Player 控件的变量.
  最后,选择你自己的平台编译一个Release版本,然后在你的嵌入式设备上运行一下看看,跟在Windows2000平台上没什么两样。

开发环境和开发平台:

PC机端:

操作系统:Windows XP Professional SP2

开发工具:eMbedded Visual C++ 4.0

嵌入式设备端:

操作系统:Windows CE .Net 4.2

硬件平台:三星2410
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

9
 
要说的楼上的都说了,呵呵。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

10
 
我用的和norains() 的方法一样
evc和vs2005都可以用
普通的wince 5.0内核的平台。
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(中级)

11
 
暂停,循环播放都可以实现
 
 
 

回复

92

帖子

0

TA的资源

一粒金砂(初级)

12
 
wfwd
谢谢!你写的那个EVC调用WIN2000meidaplayer那个帖子,太爽了!
 
 
 

回复

95

帖子

0

TA的资源

一粒金砂(初级)

13
 

你們一堆人放屁

SDK內沒有DCOM要怎麼通過編譯???
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

14
 
不错不错~
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
有奖直播报名| TI 面向楼宇和工厂自动化行业的毫米波雷达解决方案
【内容简介】TI 60GHz IWRL6432和 IWRL1432毫米波雷达传感器如何帮助解决楼宇和工厂自动化应用中的感应难题
【直播时间】5月28日(周三)上午10:00
【直播礼品】小米双肩包、contigo水杯、胶囊伞、安克充电器

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 5

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表