bool Playing = flase;
MCI_OPEN_PARMS OpenParam;
void PlayFile (LPTSTR FileName)
{
MCI_STATUS_PARMS StatusParam;
MCI_PLAY_PARMS PlayParam;
OpenParam.lpstrElementName = FileName;
//Ouverture du fichier multimédia
mciSendCommand(0, MCI_OPEN, MCI_OPEN_ELEMENT, (DWORD_PTR)&OpenParam);
//Récupération de la durée du fichier
StatusParam.dwItem = MCI_STATUS_LENGTH;
mciSendCommand(OpenParam.wDeviceID, MCI_STATUS, MCI_STATUS_ITEM, (DWORD_PTR)&StatusParam);
PlayParam.dwFrom = 0;
PlayParam.dwTo = (DWORD)StatusParam.dwReturn;
StatusParam.dwItem = MCI_STATUS_READY;
mciSendCommand(OpenParam.wDeviceID, MCI_STATUS, MCI_STATUS_ITEM, (DWORD_PTR)&StatusParam);
//Test si le périphérique est prêt
if(StatusParam.dwReturn != NULL)
mciSendCommand(OpenParam.wDeviceID, MCI_PLAY, 0, (DWORD_PTR)&PlayParam);
else
{
MessageBox(0, "Le périphérique audio n'est pas prêt", "Lecture impossible", MB_ICONHAND);
return;
}
Playing = true;
}
//Fonction testant la lecture avant d'éxecuter une action
void InterruptPlaying (void)
{
//Si le fichier ne joue pas, fermeture
if(Playing == false)
mciSendCommand(OpenParam.wDeviceID, MCI_CLOSE, 0, 0);
else //Sinon mise en pause
{
mciSendCommand(OpenParam.wDeviceID, MCI_PAUSE, 0, 0);
Playing = false;
}
}
//Fonction stoppant directement la lecture sans test
void StopPlaying (void)
{
mciSendCommand(OpenParam.wDeviceID, MCI_CLOSE, 0, 0);
Playing = false;
}