本人要用VC的mci不用控件写视频播放器,但是不怎么懂用VC和C++,那么需要学些什么呢?可否提供书本和资料 95
用VC不用控件写视频播放器,是否用MCI好过重新学DirecShow做视频播放器好?请教各位高手,详细指导!感谢!如果可以的话,请发邮箱344907090@qq.com万...
用VC不用控件写视频播放器,是否用MCI好过重新学DirecShow做视频播放器好?请教各位高手,详细指导!感谢!
如果可以的话,请发邮箱344907090@qq.com 万分感谢! 展开
如果可以的话,请发邮箱344907090@qq.com 万分感谢! 展开
1个回答
展开全部
在注册表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);
}
*/
}
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);
}
*/
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询