mciSendString的使用方法

来源:互联网 发布:网络终结者校园网 编辑:程序博客网 时间:2024/06/05 04:46

直接来讲mciSendString的使用方法吧,首先mciSendString是用来播放多媒体文件的API指令,其使用方法有以下几种: 

一,打开多媒体文件。

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


 
 

  设Picture控件的ID为IDC_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 movie定义了mpeg1.avi的别名为movie,以后可以通过操


 
 

  做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;


 
 

  mciSendString("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);


 
 

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

命令串


 
 

  1)CD


 
 

  wchar_t buf[256];


 
 

  MCIERROR err = mciSendString(L"open cdaudio alias cd", NULL, 0, NULL); // 打开CD


 
 

  if (err) {


 
 

  if (mciGetErrorString(err, buf, 256))


 
 

  MessageBox(buf, L"Error"); // 获得并显示错误串


 
 

  return;


 
 

  }


 
 

  mciSendString(L"status cd number of tracks", buf, 256, NULL); // 获得音轨总数


 
 

  m_nTracks = wcstol(buf, NULL, 10); // 这里使用了宽字符版的字符串到整数的


 
 

  // 转换函数:long wcstol( const wchar_t *nptr, wchar_t **endptr, int base );


 
 

  wsprintf(buf, L"play cd from %d to %d", m_nFrom, m_nTo);


 
 

  mciSendString(buf, NULL, 0, NULL); // 从音轨m_nFrom头播放到音轨m_nTo–1尾


 
 

  其他常用命令:


 
 

  mciSendString(L"set cd time format tmsf", NULL,0,NULL); // 设置时间格式为


 
 

  // 轨(<100):分(<100):秒(<60):帧(<75),一秒=75块,一块=98帧


 
 

  mciSendString(L"set cd door open", NULL, 0, NULL); // 打开光驱


 
 

  mciSendString(L"set cd door closed", NULL, 0, NULL); // 关闭光驱


 
 

  mciSendString(L"pause cd", NULL, 0, NULL); // 暂停播放


 
 

  mciSendString(L"resume cd", NULL, 0, NULL); // 恢复播放


 
 

  mciSendString(L"stop cd", NULL, 0, NULL); // 停止播放


 
 

  mciSendString(L"close cd", NULL, 0, NULL); // 关闭CD设备


 
 

  mciSendString(L"status cd length", buf, 256, NULL); // 获得整个CD的音轨总长度


 
 

  mciSendString(L"status cd length track 5", buf, 256, NULL); // 获得第5个音轨的长度


 
 

  mciSendString(L"status cd current track", buf, 256, NULL); // 获得当前音轨号


 
 

  注意:


 
 

  "play cd from m_nFrom to m_nTo"是完整形式,它还有其他形式:


 
 

  "play cd from m_nFrom"从m_nFrom播放到盘尾


 
 

  "play cd to m_nTo"从当前位置播放到指定音轨


 
 

  "play cd" 从当前位置播放到盘尾

  例如播放最后一首歌:"play cd from m_nLast"

原创粉丝点击