Передача звука по локальной сети

Категории витой пары:

– (1) подходит только для передачи голосовых сообщений на скорости до 4 Мбит/с;

– (2) подходит для передачи голоса и данных на скорости до 4 Мбит/с;

– (3) подходит для передачи голоса и данных на скорости до 16 Мбит/с. Используется в сетях Ethernet, Token Ring;

– (4) подходит для передачи данных на скорости до 20 Мбит/с;

– (5) улучшенная 3-я категория.

Подходит для передачи данных на скорости до 100 Мбит/с. Используется в сетях Fast Ethernet, Token Ring;

– (5+) подходит для передачи данных на скорости до 155 Мбит/с. Используется в сетях ATM.

При выборе сетевой карты, нужно обратить внимание на то, с какой шиной – PCI или ISA, – она работает. Сейчас большинство сетевых карт предназначено для размещения в PCI-слоты. Поскольку шина PCI более быстродействующая, ее предпочтительно использовать в сетях Fast Ethernet.

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

– исправность сетевого соединения;

– режим работы: полу или полнодуплексный;

– скорость передачи данных 10 или 100 Мбит/с;

– идет передача данных или нет.

Для отображения режима работы и скорости передачи могут использоваться не два индикатора, а один. Например, компания 3Com для демонстрации скорости передачи использует два индикатора, a SMC – один, цвет которого меняется в зависимости от значения скорости – 10 или 100 Мбит/с.

Существует еще ряд характеристик, которые в ряде случаев следует учитывать при выборе сетевых карт. К ним относятся: наличие Boot ROM, то есть возможность загрузки с сетевой карты (а не, например, с винчестера); наличие режима Bus master, то есть возможность независимой работы с шиной; поддержка удаленного управления и администрирования (например, SNMP). Кроме того, многие производители сетевого оборудования и ПО, разработали программные средства, позволяющие увеличить производительность работы сетевых адаптеров: Dynamic Access 3Com, Adaptive Technology Intel и т. д.

2.2 Решение поставленной задачи

Вы, возможно, не знали о том, что компоненты, которые устанавливаются вместе с Windows Media Player 9 (и более поздними версиями) содержат встроенные средства широковещательной передачи аудио-данных. Фактически каждый подключенный к сети компьютер, на котором установлен Windows Media Player, может быть превращен в сетевую радиостанцию. Для этого можно воспользоваться готовыми программами. Можно написать собственную программу, используя напрямую интерфейсы, предоставляемые Windows Media System (такие как IWMWriterNetworkSink, IWMProfile, IWMCodecInfo) и еще десяток функций и интерфейсов (их описание содержится в Windows Media SDK).

2.3 Практическая реализация передачи звука по сети

Мы рассмотрим другое решение - создание собственной Интернет-радиостанции с помощью Delphi и компонентов New Audio Components (NewAC). Мы увидим, что в простейшем примере нам будет достаточно соединить два компонента и настроить их свойства.

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

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

Поскольку передача данных выполняется в формате Windows Media Audio, ее можно будет прослушивать с любого компьютера, на котором установлен Windows Media Player, или совместимый проигрыватель. Стоит отметить, что за последние годы качество потокового аудио-формата Windows Media Audio заметно улучшилось, так что даже при скорости передачи данных 16 кбит/сек мы можем получить звук вполне приемлемого радио-качества. При этом передача данных создаст незначительную нагрузку на локальную сеть. Разумеется, ничто не мешает нам организовать передачу данных с более высоким битрейтом, (а, следовательно, - качеством), но нагрузка на сеть в этом случае, естественно, возрастет. При наличии DSL-модема и видимого из внешней сети IP-адреса вы даже можете организовать трансляцию в глобальную сеть, хотя число клиентов, способных принимать вашу радиопередачу будет не очень велико.

3 Разработка программного продукта

3.1 Общая схема взаимодействия программы и звуковой подсистем

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

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

Работа программы с устройством начинает с его открывания функцией Open. При этом программа указывает требуемый формат звукового потока, а также способ уведомления о выполнении запрошенных операций.

Затем программа создает (обычно - в динамической памяти) один или несколько звуковых буферов с заголовками и заполняет заголовки в соответствии с установленными правилами. Программа может также сразу подготовить все звуковые буферы к передаче драйверу функциями Prepare, либо делать это непосредственно перед передачей каждого очередного буфера.

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

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

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

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

Страница:  1  2  3  4  5  6  7 


Другие рефераты на тему «Программирование, компьютеры и кибернетика»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы