Составители:
который сообщает Windows, куда должны быть адресованы сообщения, посылаемые по-
следующими командами.
Второй параметр uMessage, представляет собой константу, например:
MCI_OPEN - Открывает устройство (начало сеанса).
MCI_CLOSE - Закрывает устройство (конец сеанса).
MCI_SET - Изменяет установки устройства.
MCI_PLAY - Начинает воспроизведение.
MCI_STOP - Прерывает выполнение текущей операции.
MCI_RECORD - Начинает запись звука.
MCI_SAVE - Сохраняет записанный фрагмент в виде файла.
Третий параметр dwFlags, обычно представляет собой комбинацию нескольких
флагов, которые помогают Windows интерпретировать команду. Набор возможных фла-
гов изменяется в зависимости от конкретного сообщения, но некоторые из них являются
общими для всех сообщений. Например, функция mciSendCommand() обычно работает
асинхронно. Когда эта команда инициирует операцию с устройством, она не ожидает
завершения выполнения этой операции, а немедленно завершается, в то время как уст-
ройство продолжает выполнение операции в фоновом режиме. Если необходимо знать,
когда выполнение операции закончится, следует установить флаг MCI_NOTIFY, и под-
система WinMM передаст сообщение о завершении, что может быть необходимым при
закрытии устройства по завершению воспроизведения звука. Флаг MCI_WAIT иниции-
рует синхронную работу (по команде mciSendCommand() выполнение программы оста-
навливается до тех пор, пока устройство не завершит выполнение текущей задачи).
Последний параметр dwParamBlock, также изменяется от сообщения к сообще-
нию. Он всегда представляет собой структурированную переменную, содержащую либо
информацию, которая необходима устройству для выполнения команды, либо пустые
поля, которые будут заполнены устройством в результате выполнения команды.
§ 9.3. Технология обработки формата RIFF
9.3.1. Структура формата RIFF
В целом следует отметить, что мультимедийные файлы соответствуют стандарт-
ному формату RIFF. Программистам, разрабатывающим мультимедийные приложения,
необходимо разбираться в структуре RIFF-файлов и знать особенности MMIO-функций,
предназначенных для записи и чтения этих файлов.
Протокол RIFF (Resource Interchange File Format - формат обмена файлами ресур-
сов) описывает файловую структуру с теговой организацией. Это означает, что файл
может быть разбит на ряд нерегулярных блоков, помеченных особыми короткими стро-
ками - тегами. Теги RIFF-файлов представляют собой четырехсимвольные коды, на-
пример RIFF, INFO или PAL. (Четвертым символом тега PAL является пробел.) Каждый
тег начинает блок данных (chunk). Наиболее важные блоки начинаются с тега RIFF и
могут содержать другие блоки, которые называются вложенными. RIFF-файлы всегда
начинаются с блока RIFF, а все остальные данные организованы в виде вложенных бло-
ков первого блока.
Каждый блок состоит из трех частей: тега, значения размера и двоичных данных.
Тег сообщает о типе последующих данных. Значение размера, имеющее тип DWORD,
указывает объем данных, содержащихся в блоке. В конце данных находится тег сле-
дующего блока, если таковой имеется. Файлы звукозаписей всегда содержат не менее
двух вложенных блоков: один из них предназначен для указания формата, а другой - для
самих данных. В некоторых блоках может быть записана информация об авторских пра-
230
который сообщает Windows, куда должны быть адресованы сообщения, посылаемые по- следующими командами. Второй параметр uMessage, представляет собой константу, например: MCI_OPEN - Открывает устройство (начало сеанса). MCI_CLOSE - Закрывает устройство (конец сеанса). MCI_SET - Изменяет установки устройства. MCI_PLAY - Начинает воспроизведение. MCI_STOP - Прерывает выполнение текущей операции. MCI_RECORD - Начинает запись звука. MCI_SAVE - Сохраняет записанный фрагмент в виде файла. Третий параметр dwFlags, обычно представляет собой комбинацию нескольких флагов, которые помогают Windows интерпретировать команду. Набор возможных фла- гов изменяется в зависимости от конкретного сообщения, но некоторые из них являются общими для всех сообщений. Например, функция mciSendCommand() обычно работает асинхронно. Когда эта команда инициирует операцию с устройством, она не ожидает завершения выполнения этой операции, а немедленно завершается, в то время как уст- ройство продолжает выполнение операции в фоновом режиме. Если необходимо знать, когда выполнение операции закончится, следует установить флаг MCI_NOTIFY, и под- система WinMM передаст сообщение о завершении, что может быть необходимым при закрытии устройства по завершению воспроизведения звука. Флаг MCI_WAIT иниции- рует синхронную работу (по команде mciSendCommand() выполнение программы оста- навливается до тех пор, пока устройство не завершит выполнение текущей задачи). Последний параметр dwParamBlock, также изменяется от сообщения к сообще- нию. Он всегда представляет собой структурированную переменную, содержащую либо информацию, которая необходима устройству для выполнения команды, либо пустые поля, которые будут заполнены устройством в результате выполнения команды. § 9.3. Технология обработки формата RIFF 9.3.1. Структура формата RIFF В целом следует отметить, что мультимедийные файлы соответствуют стандарт- ному формату RIFF. Программистам, разрабатывающим мультимедийные приложения, необходимо разбираться в структуре RIFF-файлов и знать особенности MMIO-функций, предназначенных для записи и чтения этих файлов. Протокол RIFF (Resource Interchange File Format - формат обмена файлами ресур- сов) описывает файловую структуру с теговой организацией. Это означает, что файл может быть разбит на ряд нерегулярных блоков, помеченных особыми короткими стро- ками - тегами. Теги RIFF-файлов представляют собой четырехсимвольные коды, на- пример RIFF, INFO или PAL. (Четвертым символом тега PAL является пробел.) Каждый тег начинает блок данных (chunk). Наиболее важные блоки начинаются с тега RIFF и могут содержать другие блоки, которые называются вложенными. RIFF-файлы всегда начинаются с блока RIFF, а все остальные данные организованы в виде вложенных бло- ков первого блока. Каждый блок состоит из трех частей: тега, значения размера и двоичных данных. Тег сообщает о типе последующих данных. Значение размера, имеющее тип DWORD, указывает объем данных, содержащихся в блоке. В конце данных находится тег сле- дующего блока, если таковой имеется. Файлы звукозаписей всегда содержат не менее двух вложенных блоков: один из них предназначен для указания формата, а другой - для самих данных. В некоторых блоках может быть записана информация об авторских пра- 230
Страницы
- « первая
- ‹ предыдущая
- …
- 226
- 227
- 228
- 229
- 230
- …
- следующая ›
- последняя »