设为首页 加入收藏

TOP

C++中用mciSendString播放音乐
2013-01-01 14:46:34 来源: 作者: 【 】 浏览:248
Tags:中用 mciSendString 播放 音乐

    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视频等.

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇poj1009 Edge Detection 下一篇C++使用localtime函数需注意

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: