本人要用VC的mci不用控件写视频播放器,但是不怎么懂用VC和C++,那么需要学些什么呢?可否提供书本和资料 95

用VC不用控件写视频播放器,是否用MCI好过重新学DirecShow做视频播放器好?请教各位高手,详细指导!感谢!如果可以的话,请发邮箱344907090@qq.com万... 用VC不用控件写视频播放器,是否用MCI好过重新学DirecShow做视频播放器好?请教各位高手,详细指导!感谢!
如果可以的话,请发邮箱344907090@qq.com 万分感谢!
展开
 我来答
nphccx
2011-01-24 · TA获得超过3938个赞
知道小有建树答主
回答量:1145
采纳率:0%
帮助的人:958万
展开全部
在注册表HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\MCI Extensions中有所有的文件类型,和相对应的播放设备。
MCI播放mp3的例子:

#include<windows.h>
#include<stdio.h>
#include<mmsystem.h>

#pragma comment(lib,"winmm.lib")

void main()
{
char buf[128];
//use mciSendString()
//mciSendString("play e:\\songs\\把根留住.mp3",buf,sizeof(buf),NULL);
//mciSendString("play e:\\songs\\zhj.mp3",buf,sizeof(buf),NULL);
char str[128] = ;
int i = 0;

//use mciSendCommand
MCI_OPEN_PARMS mciOpen;
MCIERROR mciError;
SetWindowText(NULL,"12345");
//mciOpen.lpstrDeviceType = (LPCTSTR)MCI_ALL_DEVICE_ID;
//mciOpen.lpstrDeviceType = "waveaudio"; //只能播放.wav文件
//mciOpen.lpstrDeviceType = "avivideo"; //*.avi
mciOpen.lpstrDeviceType = "mpegvideo";
//mciOpen.lpstrDeviceType = "sequencer";
mciOpen.lpstrElementName = "e:\\songs\\zhj.mp3";
//mciOpen.lpstrElementName = "e:\\movie\\first.avi";
//mciOpen.lpstrElementName = "c:\\winnt\\media\\Windows 登录音.wav";
mciError = mciSendCommand(0,MCI_OPEN,MCI_OPEN_TYPE | MCI_OPEN_ELEMENT,(DWORD)&mciOpen);
if(mciError)
{
mciGetErrorString(mciError,buf,128);
printf("send MCI_OPEN command failed:%s\n",buf);
return;
}
UINT DeviceID = mciOpen.wDeviceID ;
MCI_PLAY_PARMS mciPlay;

mciError = mciSendCommand(DeviceID,MCI_PLAY,0 ,(DWORD)&mciPlay);
if(mciError)
{
printf("send MCI_PLAY command failed\n");
return;
}

/*
while(1)
{
sprintf(str,"now playing\t%d\tseconds",i);
printf("%s\r",str);
i++;
Sleep(1000);
}
*/
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式