mciSendString

来源:互联网 发布:linux下 ansi转utf8 编辑:程序博客网 时间:2024/04/29 05:02

  mciSendString是用来播放多媒体文件的API指令,可以播放MPEG,AVI,WAV,MP3,等等,下面我来介
下它的使用方法:
    
一,打多媒体文件。
    
首先在Dialog上面放一个Picture控件,MCISendString就在Picture控件的平面上播放多媒体文件,
Picture控件的IDIDC_STATIC1
CStatic *pStatic=(CStatic*)GetDlgItem(IDC_STATIC1);HWND h=pStatic->GetSafeHwnd();
CString open1;
char buf[256];
open1.Format("open f:""mpeg""mpeg1.avi type MPEGVideo Alias movie parent %u Style %u notify",              h,WS_CHILD);
mciSendString(open1.GetBuffer(open1.GetLength()),buf,sizeof(buf),NULL);
这样F下面的mpeg下的mpeg1.avi就打了,其中的type MPEGVideo是指打MPEG,AVI型,如果不加
type MPEGVideo
一句,就是打WAV,MP3等,Alias moviempeg1.avimovie,以后可以通
movie就可以操作mpeg1.avi
    
,播放多媒体文件。
    
上面我f:"mpeg"mpeg1.avi在我来播放它:
mciSendString("play movie",buf,sizeof(buf),NULL);
    
如果想全屏播放:
mciSendString("play movie fullscreen",buf,sizeof(buf),NULL);


,停播放。
mciSendString("pause movie",buf,sizeof(buf),NULL);
    
四,停止播放。
mciSendString("close movie",buf,sizeof(buf),NULL);
    
五,得到所播放文件的度。
char sPosition[256];long lLength;
ciSendString("Status movie length", sPosition, 255,0);lLength=strtol(sPosition, NULL, 10);
其中lLength就是所播放文件的度。
    
六,得到所播放文件的声音大小。
char chVolume[256];long lVolume;mciSendString("status movie volume",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就是要到的播放位置,可以由你指定。