Операционные системы. Учебное пособие. Марапулец Ю.В. - 218 стр.

UptoLike

Составители: 

программ. Так, существует единый набор команд для воспроизведения аудиофайлов с
помощью любой звуковой карты. В ОС Windows функции, предназначенные для выпол-
нения мультимедийных операций, находятся в библиотеке WinMM.DLL. Соответствен-
но, подсистема Win32, предназначенная для интерпретации и выполнения мультиме-
дийных команд, называется WinMM. Следует отметить, что приложение, использующее
команды WinMM, должно содержать файл Mmsystem.H и иметь связь с библиотекой
Winmm.LIB. (В среде Windows 3.1 мультимедийные функции находятся в файле Mmsys-
tem.DLL). Таким образом, при переносе приложения из Windows 3.1 в более современ-
ные ОС семейства Windows необходимо убедится в том, что в МАК-файле вместо
Mmsystem.LIB включен файл Winmm.LIB.
Операционная система обеспечивает четыре различных способа управления муль-
тимедийными операциями: два набора команд высокого уровня, один набор команд низ-
кого уровня и набор команд для ввода/вывода файлов.
Команды высокого и низкого уровней управляют одними и теми же мультимедий-
ными устройствами. Первые удобнее в использовании, но вторые являются более мощ-
ными. Кроме того, поскольку все высокоуровневые команды реализованы с помощью
функций низкого уровня, лучшего быстродействия можно достичь при непосредствен-
ном выполнении низкоуровневых команд.
Команды низкого уровня взаимодействуют непосредственно с драйверами физиче-
ских устройств. Команды высокого уровня взаимодействуют с драйверами логических
устройств. В Windows есть три логических мультимедийных устройства:
MIDI-синтезатор, проигрыватель компакт-дисков и проигрыватель аудиофайлов. Эти
устройства преобразуют высокоуровневые команды в обращения к функциям низкого
уровня, адресованные конкретным физическим устройствам. API высокого уровня,
сформированный драйверами логических устройств, называется MCI (Media Control In-
terface - интерфейс управления средой). 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. Его работа основана на прерываниях. Цен-
тральный процессор регулярно получает сигналы прерываний от микросхемы таймера, а
220
программ. Так, существует единый набор команд для воспроизведения аудиофайлов с
помощью любой звуковой карты. В ОС Windows функции, предназначенные для выпол-
нения мультимедийных операций, находятся в библиотеке WinMM.DLL. Соответствен-
но, подсистема Win32, предназначенная для интерпретации и выполнения мультиме-
дийных команд, называется WinMM. Следует отметить, что приложение, использующее
команды WinMM, должно содержать файл Mmsystem.H и иметь связь с библиотекой
Winmm.LIB. (В среде Windows 3.1 мультимедийные функции находятся в файле Mmsys-
tem.DLL). Таким образом, при переносе приложения из Windows 3.1 в более современ-
ные ОС семейства Windows необходимо убедится в том, что в МАК-файле вместо
Mmsystem.LIB включен файл Winmm.LIB.
      Операционная система обеспечивает четыре различных способа управления муль-
тимедийными операциями: два набора команд высокого уровня, один набор команд низ-
кого уровня и набор команд для ввода/вывода файлов.
      Команды высокого и низкого уровней управляют одними и теми же мультимедий-
ными устройствами. Первые удобнее в использовании, но вторые являются более мощ-
ными. Кроме того, поскольку все высокоуровневые команды реализованы с помощью
функций низкого уровня, лучшего быстродействия можно достичь при непосредствен-
ном выполнении низкоуровневых команд.
      Команды низкого уровня взаимодействуют непосредственно с драйверами физиче-
ских устройств. Команды высокого уровня взаимодействуют с драйверами логических
устройств. В Windows есть три логических мультимедийных устройства:
MIDI-синтезатор, проигрыватель компакт-дисков и проигрыватель аудиофайлов. Эти
устройства преобразуют высокоуровневые команды в обращения к функциям низкого
уровня, адресованные конкретным физическим устройствам. API высокого уровня,
сформированный драйверами логических устройств, называется MCI (Media Control In-
terface - интерфейс управления средой). 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. Его работа основана на прерываниях. Цен-
тральный процессор регулярно получает сигналы прерываний от микросхемы таймера, а



                                       220