Страница 6 из 7
MCI Play&Stop Рассмотрим пример воспроизведения CD-треков. mciSetParms.dwTimeFormat = MCI_FORMAT_TMSF; flags = MCI_SET_TIME_FORMAT; mciSendCommand(wDeviceID, MCI_SET, flags, (DWORD)& mciSetParms);
Первым делом устанавливаем формат времени. Используем уже знакомую структуру - MCI_SET_PARMS, в которой устанавливаем параметр MCI_FORMAT_TMSF. Он говорит о том, что формат времени устанавливается в треках, минутах, секундах и фреймах. В качестве флага передаем флаг параметра времени - MCI_SET_TIME_FORMAT. Ну, а дальше запускаем нашу функцию. Для того, чтобы воспроизвести трек необходимо воспользоваться командой MCI_PLAY, которая зависит от структуры MCI_PLAY_PARMS. Вот ее описание: typedef struct { DWORD dwCallback; DWORD dwFrom; DWORD dwTo; } MCI_PLAY_PARMS;
Где - dwCallback - указатель на функцию "возврата"
- dwFrom - позиция начала воспроизведения
- dwTo - позиция конца воспроизведения
После того когда мы установили формат времени, в котором будет воспроизводиться трек, следующее что нам надо узнать, это длину трека по которому в дальнейшем мы определим начало и конец воспроизведения. Вот пример кода: // Определяем длину трека через уже "готовую" //функцию, где track - это номер трека DWORD lengthTrack = LengthTrack(track);
// С помощью функции MCI_MAKE_TMSF зададим начало и конец // воспроизведения воспользовавшись структурой MCI_PLAY_PARMS. mciPlayParms.dwFrom = MCI_MAKE_TMSF(track, 0, 0, 0); mciPlayParms.dwTo = MCI_MAKE_TMSF(track, MCI_MSF_MINUTE(lengthTrack), MCI_MSF_SECOND(lengthTrack), MCI_MSF_FRAME(lengthTrack));
// Зададим нужные флаги flags = MCI_FROM | MCI_TO;
// Начнем воспроизведение mciSendCommand(wDeviceID, MCI_PLAY, flags, (DWORD)& mciPlayParms);
При использовании флагов MCI_FROM и MCI_TO необходимо устанавливать формат времени, как мы это сделали в начале этого упражнения. Теперь пора рассмотреть другую команду - MCI_STOP (комментариев я думаю не надо). Действуем по аналогии с командами открытия и закрытия CD. mciSendCommand(wDeviceID, MCI_STOP, 0, (DWORD)& mciGenericParms);
Это все, что нужно сделать. |