Введение

Еще совсем недавно "говорящие" компьютеры встречались только на страницах научно-фантастических книг и в лабораториях. Компьютер, который умел воспроизводить или записывать звук, рассматривался как экзотика, недоступная для большинства пользователей. Многие даже и не догадывались, что на экране обычного компьютера можно просматривать видеофильмы со звуковым сопровождением.

Звук и видеофильмы представляются в компьютере в виде обычных цифровых данных, поэтому, казалось бы, нет никаких затруднений в их хранении, обработке и выводе. Однако при ближайшем рассмотрении оказывается, что для хранения звука и тем более видеоизображения требуются огромные объемы памяти - порядка десятков и сотен мегабайт. Запись и воспроизведение видеофильмов связаны с обработкой информации в реальном времени, поэтому только современные компьютеры могут справиться с потоком данных, поступающим, например, от видеокамеры.

Прорыв в технологии изготовления запоминающих устройств для компьютеров привел к значительному удешевлению памяти, как оперативной, так и дисковой. Появились лазерные дисковые устройства различных типов, обладающие рекордно низкой стоимостью хранения одного мегабайта данных. Цена процессоров i386, i486 и Pentium упала настолько, что они стали доступны практически всем. Теперь вы сможете приобрести компьютер с процессором Pentium/60 всего за 2000 - 2500 долларов. Очень трудно найти в продаже компьютер с процессором 80286, зато примерно за 700-900 долларов можно приобрести компьютер с процессором i386 или даже i486SX.

Постоянное падение цен на компьютерное оборудование, а также разработка новых программных и аппаратных методов компрессии данных создали уже сейчас все предпосылки для самого широкого внедрения технологии мультимедиа, предполагающей активное использование звука, высококачественных графических изображений и видео. Всего за 50 - 100 долларов вы можете приобрести звуковую плату с миниатюрными колонками и микрофоном, с помощью которой ваш компьютер сможет записывать и воспроизводить звук, а также проигрывать музыкальные файлы в формате MIDI. Затратив дополнительно не более 160 долларов, вы сможете приобрести устройство чтения компакт-дисков CD ROM, которое откроет для вас окно в мир программных систем нового поколения. Вполне доступно устройство ввода информации от видеокамеры или видеомагнитофона (в зависимости от возможностей такое устройство может стоить от ста до нескольких сотен долларов).

Какие же новые возможности появляются у пользователя или программиста, превратившего свой компьютер в мультимедиа-компьютер, и стоят ли они денег, потраченных на приобретение дополнительного оборудования?

На этот вопрос может быть только один ответ: да, и еще раз да!

Уточним, что же такое мультимедиа. Дословный перевод слова multimedia не слишком благозвучен - многосредность или множество сред. Под средой здесь понимается звук, видео, текст и любые другие данные. Мы не будем переводить слово multimedia, которое пришло в русский язык из английского, широко используется и понятно без перевода.

Под мультимедиа мы будем понимать комплекс аппаратных и программных средств, позволяющих применять персональных компьютер для работы не только с текстом, но и со звуком, графикой, анимацией, а также видео.

Мультимедиа позволяют использовать компьютер новым способом, превращая его, например, в удобный инструмент для работы с базами данных громадных размеров, содержащих не только текстовые данные, но и звук, высококачественные изображения и видеофильмы.

Как разработчик программного обеспечения, вы можете распространять свое приложение на компакт-дисках, предназначенных для устройств чтения CD ROM, при этом размер дисковой памяти, занимаемый одним приложением, может достигать несколько сотен Мбайт! В России уже есть издательства, занимающиеся созданием, тиражированием и распространением таких компакт-дисков. Стоимость изготовления одного компакт-диска не превышает двух долларов. Так как на одном компакт-диске может быть записано порядка 650 Мбайт данных, стоимость хранения информации минимальна и просто не сравнима со стоимостью хранения данных на традиционных магнитных носителях.

Данное обстоятельство уже привело к лавинообразному появлению на зарубежном рынке программного обеспечения, баз данных и целых библиотек, которые поставляются на компакт-дисках по низкой цене.

Можно очень долго перечислять приложения, использующие технологию мультимедиа и записанные на компакт-дисках. Выделим для примера несколько групп таких приложений.

Справочные базы данных и системы поддержки разработчиков программного обеспечения

Примером системы поддержки разработчиков программного обеспечения может служить набор компакт-дисков Microsoft Developer Network CD. Один диск из такого набора стоимостью 50 долларов содержит целый шкаф документации (сотни книг и статей!), тысячи примеров программ, базу знаний, инструментальные средства и полезные утилиты.

На момент создания книги фирма Microsoft подготовила два уровня Microsoft Developer Network CD. Первый уровень - это один компакт-диск Development Library, на котором находится все, перечисленное выше. Второй уровень (Development Platform) состоит из нескольких компакт-дисков, содержащих десятки версий операционной системы Windows и Windows NT, а также средства разработки приложений (SDK и DDK) для Windows и Windows NT.

Без преувеличения можно сказать, что Microsoft Developer Network CD второго уровня содержит все, что нужно разработчику приложений Windows и Windows NT (кроме транслятора Visual C++, который, впрочем, тоже поставляется на компакт-диске).

Аналогичные средства созданы и другими фирмами. Можно упомянуть энциклопедии, выпускаемые фирмой Novell для разработчиков программного обеспечения, администраторов и пользователей сетевых операционных систем, созданных Novell.

Традиционное программное обеспечение

Так как стоимость хранения информации на компакт-дисках значительно меньше стоимости хранения информации на дискетах, а надежность хранения выше, удобнее использовать дистрибутивы программ в виде компакт-дисков. Современные приложения, такие, например, как Borland C++ версии 4.0 или Microsoft Visual C++ версии 1.5, поставляются либо на дискетах, либо на компакт-дисках. В первом случае вам нужно установить по очереди более двух десятков дискет, что не слишком удобно. Установка программ с компакт-диска выполняется легко и быстро. Вам не нужно беспокоиться о том, что в один прекрасный момент дискеты дистрибутива испортятся, и, соответственно, не нужно делать резервную копию.

В настоящее время на компакт-дисках продается практически любое программное обеспечение, дистрибутив которого занимает больше чем полтора-два десятка дискет. Можно также купить один компакт-диск без напечатанной в виде книг документации, что стоит дешевле. При необходимости вы сможете сами распечатать нужные вам тома документации, так как они есть на компакт-диске в том или ином формате.

Всего за 20-30 долларов вы можете приобрести компакт-диски, содержащие тысячи и десятки тысяч программ MS-DOS, приложений Windows, драйверов и утилит для MS-DOS, Windows и других операционных систем. Предлагаются также компакт-диски, содержащие сотни высококачественных изображений в виде gif-файлов, коллекции звуков, MIDI-файлов с музыкальными произведениями и видеофильмами. Во многих случаях вы можете бесплатно использовать такие изображения, звуки и видеофильмы при создании своего программного обеспечения (то есть если вы включаете файлы, переписанные из таких компакт-дисков, в свое программное обеспечение, вам не требуется платить за это владельцу прав на распространение компакт-дисков, составителю или автору компакт-диска).

Словари и энциклопедии

Технология мультимедиа открывает новые возможности для создания электронных словарей и энциклопедий. Такие словари хранят для каждого слова не только перевод и транскрипцию, но и образец произношения в виде небольшого звукового фрагмента. Огромная емкость компакт-диска позволяет записать на нем также и фотографию, имеющую отношение к любому слову или понятию. Электронные словари и энциклопедии намного удобнее обычных, так как в них легче искать нужную вам информацию и они не занимают много места на рабочем столе (что иногда тоже имеет большое значение).

Картографические системы

На компакт-дисках выпускаются различные картографические системы, от атласа мира до подробных карт сотен городов. Вы можете прослушать гимны стран, названия городов, ознакомиться с подробной картой нужного вам города и получить другую информацию, связанную с той или иной местностью. Картографические системы окажут неоценимую услугу при планировании отпуска или деловой поездки, они очень удобны для туристических бюро и агентств.

Обучающие системы

Эффективность обучения повышается при использовании наглядных иллюстраций. Технология мультимедиа и компакт-диски сделали возможным появление обучающих систем нового поколения, превращающих обучение в игру. Создатель такой системы может иллюстрировать изучаемый материал при помощи видеофильмов со звуковым комментарием, что улучшает его восприятие и снижает утомляемость.

Телеконференции в сети компьютеров

Организация в локальных сетях компьютеров телеконференций - новое направление использования технологии мультимедиа, появившееся в результате внедрения скоростных локальных сетей, недорогих видеокамер, аппаратуры для ввода звука и видеоинформации в персональный компьютер. Видеоизображение и звук поступают с одной или нескольких видеокамер и транслируются по сети. Каждый участник видеоконференции имеет доступ к транслируемым видеоматериалам и при наличии на рабочем месте видеокамеры может сам передавать изображения в сеть.

Игры и развлечения

Технология мультимедиа позволяет приблизить "виртуальную реальность" игры к реальности жизни, которая наполнена звуками и изображениями. Компакт-диски могут хранить файлы игровых программ размером в сотни мегабайт, что создает предпосылки для появления игр, несравнимых со старыми по обилию звуковой и видеоинформации. Наконец, устройство чтения компакт-дисков способно проигрывать музыкальные диски. Вы можете подключить к нему обычные наушники и слушать музыку.

Надеемся, что мы вас убедили и что в самое ближайшее время вы отправитесь приобретать звуковой адаптер и устройство чтения компакт-дисков CD ROM, а может быть и адаптер для записи видеофильмов.

Теперь об этой книге.

Наша книга предназначена в первую очередь для тех, кто собирается самостоятельно создавать мультимедиа-приложения. Поэтому основное внимание мы уделим вопросам использования технологий мультимедиа при разработке новых приложений. Однако, учитывая новизну темы, мы сделаем краткий обзор существующих приложений, поддерживающих технологию мультимедиа.

Из-за ограниченного объема книги мы смогли рассмотреть только самые важные аспекты программирования устройств мультимедиа. Тем из вас, кто собирается разрабатывать мультимедиа-приложения на профессиональном уровне, мы рекомендуем приобрести Microsoft SDK для Windows версии 3.1, в состав которого входит полное описание средств мультимедиа. В продаже есть также изделие Microsoft MDK (Multimedia Development Kit), вместе с которым поставляется средство для создания приложений мультимедиа без программирования. Для работы с видеофильмами вам необходимо приобрести систему Microsoft Video for Windows Development Kit, содержащую необходимую документацию и, что самое главное, полезные утилиты, примеры приложений, библиотеки и include-файлы.

Для работы с книгой вам достаточно иметь компьютер с процессором i386DX33 и оперативной памятью 4 Мбайт, оснащенный звуковым адаптером и, желательно, устройством чтения компакт-дисков CD ROM. Для работы с видеофильмами средствами Video for Windows рекомендуется процессор i486 и акселератор Windows в качестве видеоадаптера, хотя просмотр видеофильмов возможен и на менее мощном компьютере (акселератор Windows, тем не менее, очень желателен).

Что касается программного обеспечения, то для трансляции исходных текстов примеров приложений, не имеющих отношение к Video for Windows, вы можете воспользоваться системами Borland Turbo C++ for Windows версии 3.1 или Borland C++ версий 3.1 или 4.0. Приложения, работающие с Video for Windows, можно транслировать системами Microsoft C++ версии 7.0 или Microsoft Visual C++ версий 1.0 или 1.5. В последнем случае желательно, чтобы в компьютере было установлено по крайней мере 8 Мбайт оперативной памяти (а лучше 16 Мбайт, особенно если вы собираетесь разрабатывать крупные проекты).

В первой, вводной главе мы познакомим вас с системами мультимедиа для Windows, расскажем о способах ввода и представлении звуковой информации в памяти компьютера, расскажем о том, как выбрать и подключить звуковой адаптер, а также сделаем краткий обзор приложений Windows, использующих технологию мультимедиа.

Вторая глава полностью посвящена описанию различных способов, с помощью которых приложения Windows могут записывать и воспроизводить звук. Мы рассмотрим все уровни программного интерфейса, от самого высокого до самого низкого. Помня о том, что примеры сильно облегчают понимание материала, мы включили в эту главу многочисленные примеры несложных приложений, демонстрирующих все способы работы со звуком. Конкретно мы рассмотрели функцию sndPlaySound, позволяющую проигрывать звуковые файлы небольшого размера, два типа интерфейса MCI и функции низкого уровня, выполняющие обращение непосредственно к драйверу звукового адаптера.

Третья глава - о работе с устройством чтения компакт-дисков CD ROM. Из нее вы узнаете о том, как подключить драйвер этого устройства, как использовать устройство для чтения цифровых компакт-дисков и проигрывания музыкальных компакт-дисков. Мы опишем способы управления CD ROM, основанные на применении интерфейса MCI и приведем пример приложения, предназначенного для проигрывания дорожек музыкального компакт-диска. Используя полученные знания, вы сможете создавать приложения, которые проигрывают дорожки компакт-диска во время своей работы в фоновом режиме.

В четвертой главе мы расскажем вам об использовании музыкального синтезатора, расположенного в звуковом адаптере, для проигрывания музыкальных файлов в стандарте MIDI с помощью интерфейса MCI. Вы сможете легко озвучить ваше приложение, даже если оно не рассчитано на работу с устройством чтения компакт-дисков. Музыкальные файлы в стандарте MIDI занимают очень немного места, поэтому ваше "озвученное" приложение не превратится в монстра, пожирающего десятки мегабайт дисковой памяти. В продаже есть богатые коллекции MIDI-файлов, так что вы всегда сможете выбрать что-нибудь на свой вкус.

Пятая глава, посвященная Microsoft Video for Windows, - о самой передовой технологии мультимедиа для операционной системы Microsoft Windows. Когда мы еще только начинали писать эту книгу, у нас не было планов включать в нее материал о Video for Windows, так как для работы с этой системой требуется достаточно мощный компьютер. Кроме того, Video for Windows - весьма сложная система, заслуживающая отдельной книги. Однако компьютеры постоянно дешевеют, а обзор средств мультимедиа был бы неполным без хотя бы краткого рассказа о Video for Windows. Поэтому мы дополнили книгу пятой главой, которую можно считать введением в Video for Windows. Вы познакомитесь с принципами, положенными в основу этой системы, узнаете ее структуру и назначение отдельных подсистем. Мы научим вас создавать видеофильмы с помощью приложений, входящих в комплект поставки Video for Windows, а также создавать собственные приложения, предназначенные для проигрывания видеофильмов. Таким образом, даже не изучая всей системы в целом, вы сможете использовать технологию Video for Windows в своих приложениях. А главное - вы сможете почувствовать мощь этой технологии, которая, кстати, является стандартной для новых версий операционной системы Windows, таких как Windows NT версии 3.5 и Chicago.

Вместе с этим томом "Библиотеки системного программиста" продается больше дискет, чем обычно. Кроме дискеты с исходными текстами приложений мы подготовили дискеты с файлами небольших видеофильмов, а также дискету с системой Video for Windows Runtime, необходимой для работы с Video for Windows. Поэтому если вы приобрели весь набор дискет, у вас есть все для того чтобы оценить возможности Video for Windows.

Как связаться с нами?

Вы можете присылать ваши отзывы в адрес издательства или через электронную почту по адресу, доступному из сетей GlasNet, Internet, Relcom и т. п.:

frolov@glas.apc.org

Заранее благодарны за ваши замечания и предложения по содержанию этой книги, а также всех остальных книг серий "Библиотека системного программиста" и "Персональный компьютер. Шаг за шагом".

Авторы выражают благодарность:

сотрудникам издательского отдела АО "Диалог-МИФИ" Елене Виноградовой, Олегу Александровичу Голубеву, Наталье Дмитриевой, Оксане Кузьминовой, которые приложили немало усилий для того чтобы книги серий "Библиотека системного программиста" и "Персональный компьютер. Шаг за шагом" вышли в свет;

корректору Виктору Кустову за колоссальные усилия, затраченные на проверку и исправление рукописей наших книг;

системным программистам фирмы Interactive Products Inc. Максиму Синеву и Сергею Ноженко за ценные советы и рекомендации по содержанию книги;

фирме Interactive Products Inc. за предоставленное в наше распоряжение программное обеспечение.