mciSendCommand 音頻視頻播放命令函數


//打開設備
//typedef struct {
//DWORD dwCallback;        //指定一個窗口句柄
//MCIDEVICEID wDeviceID;   //為成功打開的文件返回 設備標識符. 
//LPCSTR lpstrDeviceType;  //設備類型的名字或常量標識. (設備名可以從注冊表或者 SYSTEM.INI 文件中獲得) 
//LPCSTR lpstrElementName; //設備元素 (通常是打開的文件全路徑). 
//LPCSTR lpstrAlias//可選別名
//DWORD dwBufferSeconds;
//} MCI_WAVE_OPEN_PARMS;




//播放文件
//typedef struct {
//DWORD dwCallback;//指定一個窗口句柄
//DWORD dwFrom;//設置播放起始點
//DWORD dwTo;//設置播放結束點
//} MCI_PLAY_PARMS;


//查詢信息
//typedef struct {
//DWORD dwCallback;
//DWORD dwReturn;//返回的信息內容
//DWORD dwItem;//請求查詢的內容
//DWORD dwTrack;//軌道的長度或數目
//} MCI_STATUS_PARMS;


 /*
 * 函數名稱:MCI_Open
 * 函數介紹:用mci命令打開文件
 * 輸入參數:CString strPath, 文件的路徑
 * 輸出參數:無
 * 返回值 :mci命令的錯誤信息
 */
  1. DWORD dlg_login::MCIOpen(const CString &strPath)  
  2. {  
  3.     //打開MCI設備  
  4.     MCI_OPEN_PARMS mciOP;  
  5.     DWORD opReturn;  
  6.     MCIDEVICEID wIDDevioce;  //保存設備ID  
  7.     mciOP.lpstrDeviceType = NULL;  
  8.     mciOP.lpstrElementName = strPath;  //設置打開的文件的名稱  
  9.     opReturn = mciSendCommand(NULL, MCI_OPEN, MCI_OPEN_ELEMENT, (DWORD)(LPVOID)&mciOP);  
  10.     if (opReturn == 0)  
  11.     {  
  12.         wIDDevioce = mciOP.wDeviceID;//播放設備Id  
  13.         wDevioceId = mciOP.wDeviceID;  
  14.   
  15.         //設置設備信息  
  16.         MCI_SET_PARMS mciSet;  
  17.         mciSet.dwTimeFormat = MCI_FORMAT_MILLISECONDS; //設置時間單位為毫秒  
  18.         mciSendCommand(wDevioceId, MCI_SET, MCI_SET_TIME_FORMAT, (DWORD)(LPVOID)&mciSet);  
  19.           
  20.         //設置當前播放位置跳轉60秒  
  21.         MCISeek(100);  
  22.         //音頻播放  
  23.         MCIPlay();  
  24.           
  25.         MCI_STATUS_PARMS mciStatus;  
  26.         mciStatus.dwItem = MCI_STATUS_TIME_FORMAT;  
  27.         DWORD sta2Return = mciSendCommand(wIDDevioce, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);  
  28.         DWORD music_timestyle = mciStatus.dwReturn; //獲得當前的時間格式  
  29.           
  30.         mciStatus.dwItem = MCI_STATUS_MODE;  
  31.         DWORD sta3Return = mciSendCommand(wIDDevioce, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);  
  32.         DWORD music_playstyle = mciStatus.dwReturn; //獲得當前播放工作模式 播放 526  暫停525   
  33.     }  
  34.     else  
  35.         wIDDevioce = NULL;  
  36.     return opReturn;  
  37. }  
DWORD dlg_login::MCIOpen(const CString &strPath)
{
	//打開MCI設備
	MCI_OPEN_PARMS mciOP;
	DWORD opReturn;
	MCIDEVICEID wIDDevioce;  //保存設備ID
	mciOP.lpstrDeviceType = NULL;
	mciOP.lpstrElementName = strPath;  //設置打開的文件的名稱
	opReturn = mciSendCommand(NULL, MCI_OPEN, MCI_OPEN_ELEMENT, (DWORD)(LPVOID)&mciOP);
	if (opReturn == 0)
	{
		wIDDevioce = mciOP.wDeviceID;//播放設備Id
		wDevioceId = mciOP.wDeviceID;

		//設置設備信息
		MCI_SET_PARMS mciSet;
		mciSet.dwTimeFormat = MCI_FORMAT_MILLISECONDS; //設置時間單位為毫秒
		mciSendCommand(wDevioceId, MCI_SET, MCI_SET_TIME_FORMAT, (DWORD)(LPVOID)&mciSet);
		
		//設置當前播放位置跳轉60秒
		MCISeek(100);
		//音頻播放
		MCIPlay();
		
		MCI_STATUS_PARMS mciStatus;
		mciStatus.dwItem = MCI_STATUS_TIME_FORMAT;
		DWORD sta2Return = mciSendCommand(wIDDevioce, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);
		DWORD music_timestyle = mciStatus.dwReturn; //獲得當前的時間格式
		
		mciStatus.dwItem = MCI_STATUS_MODE;
		DWORD sta3Return = mciSendCommand(wIDDevioce, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);
		DWORD music_playstyle = mciStatus.dwReturn; //獲得當前播放工作模式 播放 526  暫停525 
	}
	else
		wIDDevioce = NULL;
	return opReturn;
}

  1. DWORD dlg_login::MCIPlay()  
  2. {  
  3.     MCI_PLAY_PARMS mciPP;  
  4.     DWORD opReturn;  
  5.     opReturn = mciSendCommand(wDevioceId, MCI_PLAY, MCI_NOTIFY, (DWORD)&mciPP);  
  6.     return opReturn;  
  7. }  
DWORD dlg_login::MCIPlay()
{
    MCI_PLAY_PARMS mciPP;
    DWORD opReturn;
    opReturn = mciSendCommand(wDevioceId, MCI_PLAY, MCI_NOTIFY, (DWORD)&mciPP);
    return opReturn;
}

  1. DWORD dlg_login::MCIStatus_music_length()  
  2. {  
  3.     MCI_STATUS_PARMS mciStatus;  
  4.     mciStatus.dwItem = MCI_STATUS_LENGTH;  
  5.     DWORD staReturn = mciSendCommand(wDevioceId, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);  
  6.     DWORD music_alltime = mciStatus.dwReturn / 1000; //音樂總時間  
  7.     return music_alltime;  
  8. }  
DWORD dlg_login::MCIStatus_music_length()
{
    MCI_STATUS_PARMS mciStatus;
    mciStatus.dwItem = MCI_STATUS_LENGTH;
    DWORD staReturn = mciSendCommand(wDevioceId, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);
    DWORD music_alltime = mciStatus.dwReturn / 1000; //音樂總時間
    return music_alltime;
}

  1. DWORD dlg_login::MCIStatus_music_pos()  
  2. {  
  3.     MCI_STATUS_PARMS mciStatus;  
  4.     mciStatus.dwItem = MCI_STATUS_POSITION;  
  5.     DWORD sta1Return = mciSendCommand(wDevioceId, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);  
  6.     DWORD music_timeing = mciStatus.dwReturn / 1000; //音樂當前播放時間  
  7.     return music_timeing;  
  8. }  
DWORD dlg_login::MCIStatus_music_pos()
{
    MCI_STATUS_PARMS mciStatus;
    mciStatus.dwItem = MCI_STATUS_POSITION;
    DWORD sta1Return = mciSendCommand(wDevioceId, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);
    DWORD music_timeing = mciStatus.dwReturn / 1000; //音樂當前播放時間
    return music_timeing;
}

 

  1. //從制定位置開始播放  
  2. void send_music_from_pos()  
  3. {  
  4.     MCI_STATUS_PARMS mciStatus;  
  5.     mciStatus.dwItem = MCI_STATUS_POSITION;  
  6.     DWORD sta1Return = mciSendCommand(wDevioceId, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);  
  7.     DWORD music_timeing = mciStatus.dwReturn / 1000; //音樂當前播放時間  
  8.     MCI_PLAY_PARMS PlayParms;  
  9.     PlayParms.dwFrom = music_timeing; // 指定從什么地方(時間)播放  
  10.     DWORD ret1 = mciSendCommand(wDevioceId, MCI_PLAY, MCI_NOTIFY, (DWORD)(LPVOID)&PlayParms);  
  11. }  
//從制定位置開始播放
void send_music_from_pos()
{
    MCI_STATUS_PARMS mciStatus;
    mciStatus.dwItem = MCI_STATUS_POSITION;
    DWORD sta1Return = mciSendCommand(wDevioceId, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&mciStatus);
    DWORD music_timeing = mciStatus.dwReturn / 1000; //音樂當前播放時間
    MCI_PLAY_PARMS PlayParms;
    PlayParms.dwFrom = music_timeing; // 指定從什么地方(時間)播放
    DWORD ret1 = mciSendCommand(wDevioceId, MCI_PLAY, MCI_NOTIFY, (DWORD)(LPVOID)&PlayParms);
}

//關閉指定設備

  1. void close_mci()  
  2. {  
  3.     DWORD retclose=mciSendCommand(wDevioceId, MCI_CLOSE, NULL, NULL);  
  4. }  
void close_mci()
{
    DWORD retclose=mciSendCommand(wDevioceId, MCI_CLOSE, NULL, NULL);
}

 

  1. //調節音量  
  2. DWORD dlg_login::MCISetVolume(DWORD dwVol)  
  3. {  
  4.     MCI_DGV_SETAUDIO_PARMS  mciSetAudioPara;  
  5.     mciSetAudioPara.dwCallback  = NULL;  
  6.     mciSetAudioPara.dwItem   = MCI_DGV_SETAUDIO_VOLUME;  
  7.     mciSetAudioPara.dwValue  = dwVol; //此處就是音量大小 (0--1000)  
  8.     DWORD dwReturn = mciSendCommand(wDevioceId, MCI_SETAUDIO, MCI_DGV_SETAUDIO_VALUE |  MCI_DGV_SETAUDIO_ITEM, (DWORD)(LPVOID)&mciSetAudioPara);  
  9.     return dwReturn;  
  10. }  
//調節音量
DWORD dlg_login::MCISetVolume(DWORD dwVol)
{
	MCI_DGV_SETAUDIO_PARMS	mciSetAudioPara;
	mciSetAudioPara.dwCallback	= NULL;
	mciSetAudioPara.dwItem	 = MCI_DGV_SETAUDIO_VOLUME;
	mciSetAudioPara.dwValue	 = dwVol; //此處就是音量大小 (0--1000)
	DWORD dwReturn = mciSendCommand(wDevioceId, MCI_SETAUDIO, MCI_DGV_SETAUDIO_VALUE |  MCI_DGV_SETAUDIO_ITEM, (DWORD)(LPVOID)&mciSetAudioPara);
	return dwReturn;
}


jpg改rar 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM