C++中利用mciSendString播放音乐
作者:网络转载 发布时间:[ 2012/12/6 10:33:58 ] 推荐标签:
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/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11