C++中利用mciSendString播放音乐(支持远程文件)

发表于:2012-12-06 10:22

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:open520yin    来源:51Testing软件测试网采编

  mciSendString是用来播放多媒体文件的API指令,可以播放MPEG,AVI,WAV,MP3,等等,下面我们来介绍一下它的使用方法:

  一、打开多媒体文件。

  首先在Dialog上面放一个Picture控件,MCISendString就在这个Picture控件的平面上播放多媒体文件,

  设Picture控件的ID为IDC_STATIC1:

 CStatic *pStatic=(CStatic*)GetDlgItem(IDC_STATIC1);HWNDh=pStatic->GetSafeHwnd();

  CString open1;

  char buf[256];

  open1.Format("open f:""mpeg""mpeg1.avi type MPEGVideo Aliasmovie parent %u Style %u notify", h,WS_CHILD);

  mciSendString(open1.GetBuffer(open1.GetLength()),buf,sizeof(buf),NULL);

  这样F盘下面的mpeg目录下的mpeg1.avi就打开了,其中的typeMPEGVideo是指打开MPEG,AVI等类型,如果不加type MPEGVideo这一句,就是打开WAV,MP3等,Aliasmovie定义了mpeg1.avi的别名为movie,以后可以通过操作movie就可以操作mpeg1.avi。

  二、播放多媒体文件。

  上面我们已经打开了f:"mpeg"mpeg1.avi,现在我们来播放它:

  mciSendString("play movie",buf,sizeof(buf),NULL);

  如果想全屏播放:

  mciSendString("play moviefullscreen",buf,sizeof(buf),NULL);

  三、暂停播放。

  mciSendString("pause movie",buf,sizeof(buf),NULL);

  四、停止播放。

  mciSendString("close movie",buf,sizeof(buf),NULL);

  五、得到所播放文件的长度。

  char sPosition[256];long lLength;

  mciSendString("Status movie length", sPosition,255,0);lLength=strtol(sPosition, NULL, 10);

  其中lLength就是所播放文件的长度。

  六、得到所播放文件的声音大小。

  char chVolume[256];long lVolume;mciSendString("status movievolume",chVolume,255,0);lVolume=strtol(chVolume,NULL,10);其中lVolume就是所播放文件的声音大小。

  七、到你指定的位置播放。

 CString step1;long lPosition;

  lPosition=100;

  step1.Format("seek movie to %ld",lPosition);

  mciSendString(step1.GetBuffer(step1.GetLength()),buf,sizeof(buf),0);

  其中lPosition就是要到的播放位置,可以由你指定。

  ////////////////////////////////////////////////////////////////////////////////

  下面看一个播放mp3音乐的简单示例:

#include <windows.h>

#include <mmsystem.h>

#pragma comment(lib, "WINMM.LIB")

int main(int argc, char *argv[])

{

mciSendString(TEXT("open 难忘的一天.mp3 alias mysong"), NULL, 0,NULL);

mciSendString(TEXT("play MySong"), NULL, 0, NULL);

Sleep(5 * 60 * 1000);

return 0;

}

  ////////////////////////////////////////////////////////////////////////////////

  该函数还可以播放avi视频等。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号