Составители:
Рубрика:
логических устройств, называется MCI (Media Control Interface – интерфейс
управления средой). MCI-команды избавляют программиста от необходимости
учета множества подробностей, связанных с управлением потоками данных,
однако за счет некоторого уменьшения гибкости.
Мультимедийные команды низкого уровня необходимы только в специа-
лизированных программах. Функции высокого уровня позволяют воспроизво-
дить MIDI-файлы, видеоклипы, записи с лазерных и компакт-дисков, а также
записывать и воспроизводить звуковые файлы.
MCI поддерживает два параллельных набора функций: интерфейс команд и
интерфейс сообщений. Командные строки и управляющие сообщения служат
для выполнения одних и тех же операций, но первые используются
в системах авторской разработки при написании пользовательских командных
сценариев управления устройствами. Функция mciSendCommand() посылает
управляющие сообщения (например, MCI_OPEN или MCI_PLAY). Аналогичная
функция mciSendString() посылает соответствующие строки (например, open
c:\sounds\harp.wav или play waveaudio to 500).
Четвертый набор MCI-команд обеспечивает чтение и запись мультимедийных
файлов. Мультимедийные команды ввода/вывода (MMIO – Multimedia I/O) вос-
принимают стандартный формат организации файлов – RIFF (он будет рассмотрен
ниже), а также осуществляют буферизацию, которая обеспечивает оптимальное
распределение интенсивных потоков данных.
Поскольку синхронизация играет очень большую роль при выполнении
мультимедийных операций, в частности при воспроизведении MIDI-файлов и
координации работы различных устройств, осуществляющих одновременную
обработку данных, подсистема WinMM поддерживает усовершенствованные
функции таймера. Мультимедийный таймер не посылает сообщения
WM_TIMER.
Его работа основана на прерываниях. Центральный процессор
регулярно получает сигналы прерываний от микросхемы таймера, а мультиме-
дийный таймер во время этих прерываний активизирует функции обратного
вызова, содержащиеся в вашей программе.
Сигналы таймера прерываний являются значительно более регулярными по
сравнению с сообщениями, поскольку при их использовании не тратится время
на ожидание, когда освободится очередь сообщений приложения. Кроме того,
точность мультимедийного таймера составляет 10 миллисекунд (для процессо-
ров MIPS) или 16 миллисекунд (для процессоров Intel), а наименьший возмож-
ный интервал между вызовами функции SetTimer() составляет приблизительно
55 миллисекунд, причем даже такой интервал не всегда гарантирован из-за за-
держек в очереди сообщений. Временное разрешение таймера варьируется от
системы к системе. Определить конкретное значение разрешения можно с по-
мощью функции timeGetDevCaps(). Рассмотрим более подробно поддержку сис-
тем анимации и звука в WinAPI [2].
Анимация. Подсистема WinMM поддерживает воспроизведение анима-
ции. Открыв устройство mmovie, можно запускать через него анимационные
файлы. Функции работы с анимацией не связаны с GDI. Устройство mmovie во
131
логических устройств, называется MCI (Media Control Interface – интерфейс
управления средой). MCI-команды избавляют программиста от необходимости
учета множества подробностей, связанных с управлением потоками данных,
однако за счет некоторого уменьшения гибкости.
Мультимедийные команды низкого уровня необходимы только в специа-
лизированных программах. Функции высокого уровня позволяют воспроизво-
дить MIDI-файлы, видеоклипы, записи с лазерных и компакт-дисков, а также
записывать и воспроизводить звуковые файлы.
MCI поддерживает два параллельных набора функций: интерфейс команд и
интерфейс сообщений. Командные строки и управляющие сообщения служат
для выполнения одних и тех же операций, но первые используются
в системах авторской разработки при написании пользовательских командных
сценариев управления устройствами. Функция mciSendCommand() посылает
управляющие сообщения (например, MCI_OPEN или MCI_PLAY). Аналогичная
функция mciSendString() посылает соответствующие строки (например, open
c:\sounds\harp.wav или play waveaudio to 500).
Четвертый набор MCI-команд обеспечивает чтение и запись мультимедийных
файлов. Мультимедийные команды ввода/вывода (MMIO – Multimedia I/O) вос-
принимают стандартный формат организации файлов – RIFF (он будет рассмотрен
ниже), а также осуществляют буферизацию, которая обеспечивает оптимальное
распределение интенсивных потоков данных.
Поскольку синхронизация играет очень большую роль при выполнении
мультимедийных операций, в частности при воспроизведении MIDI-файлов и
координации работы различных устройств, осуществляющих одновременную
обработку данных, подсистема WinMM поддерживает усовершенствованные
функции таймера. Мультимедийный таймер не посылает сообщения
WM_TIMER. Его работа основана на прерываниях. Центральный процессор
регулярно получает сигналы прерываний от микросхемы таймера, а мультиме-
дийный таймер во время этих прерываний активизирует функции обратного
вызова, содержащиеся в вашей программе.
Сигналы таймера прерываний являются значительно более регулярными по
сравнению с сообщениями, поскольку при их использовании не тратится время
на ожидание, когда освободится очередь сообщений приложения. Кроме того,
точность мультимедийного таймера составляет 10 миллисекунд (для процессо-
ров MIPS) или 16 миллисекунд (для процессоров Intel), а наименьший возмож-
ный интервал между вызовами функции SetTimer() составляет приблизительно
55 миллисекунд, причем даже такой интервал не всегда гарантирован из-за за-
держек в очереди сообщений. Временное разрешение таймера варьируется от
системы к системе. Определить конкретное значение разрешения можно с по-
мощью функции timeGetDevCaps(). Рассмотрим более подробно поддержку сис-
тем анимации и звука в WinAPI [2].
Анимация. Подсистема WinMM поддерживает воспроизведение анима-
ции. Открыв устройство mmovie, можно запускать через него анимационные
файлы. Функции работы с анимацией не связаны с GDI. Устройство mmovie во
131
Страницы
- « первая
- ‹ предыдущая
- …
- 129
- 130
- 131
- 132
- 133
- …
- следующая ›
- последняя »
