C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 7 - MCI Play&Stop / MCI / Visual C++

Шаг 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); 

Это все, что нужно сделать.


| |
Автор Владимир Потапов.
[AD]