vcMCI播放mp3的實例

在註冊表HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\MCI Extensions中有所有的文件類型,和相對應的播放設備。
MCI播放mp3的例子:

  1. #include<windows.h> 
  2. #include<stdio.h> 
  3. #include<mmsystem.h> 
  4.  
  5. #pragma comment(lib,"winmm.lib") 
  6.  
  7. void main() 
  8. char buf[128]; 
  9. //use mciSendString() 
  10. //mciSendString("play e:\\songs\\把根留住.mp3",buf,sizeof(buf),NULL); 
  11. //mciSendString("play e:\\songs\\zhj.mp3",buf,sizeof(buf),NULL); 
  12. char str[128] = {0 }; 
  13. int i = 0; 
  14.  
  15. //use mciSendCommand 
  16. MCI_OPEN_PARMS mciOpen; 
  17. MCIERROR mciError; 
  18. SetWindowText(NULL,"12345"); 
  19. //mciOpen.lpstrDeviceType = (LPCTSTR)MCI_ALL_DEVICE_ID; 
  20. //mciOpen.lpstrDeviceType = "waveaudio"; //只能播放.wav文件 
  21. //mciOpen.lpstrDeviceType = "avivideo";   //*.avi 
  22. mciOpen.lpstrDeviceType = "mpegvideo"
  23. //mciOpen.lpstrDeviceType = "sequencer"; 
  24. mciOpen.lpstrElementName = "e:\\songs\\zhj.mp3"
  25. //mciOpen.lpstrElementName = "e:\\movie\\first.avi"; 
  26. //mciOpen.lpstrElementName = "c:\\winnt\\media\\Windows 登錄音.wav"; 
  27. mciError = mciSendCommand(0,MCI_OPEN,MCI_OPEN_TYPE | MCI_OPEN_ELEMENT,(DWORD)&mciOpen); 
  28. if(mciError) 
  29. mciGetErrorString(mciError,buf,128); 
  30. printf("send MCI_OPEN command failed:%s\n",buf); 
  31. return
  32. UINT DeviceID = mciOpen.wDeviceID ; 
  33. MCI_PLAY_PARMS mciPlay; 
  34.  
  35. mciError = mciSendCommand(DeviceID,MCI_PLAY,0 ,(DWORD)&mciPlay); 
  36. if(mciError) 
  37. printf("send MCI_PLAY command failed\n"); 
  38. return
  39.  
  40. /* 
  41. while(1) 
  42. sprintf(str,"now playing\t%d\tseconds",i); 
  43. printf("%s\r",str); 
  44. i++; 
  45. Sleep(1000); 
  46. */ 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章