Голосование

Собираетесь ли Вы поменять работу в ближайшее время?

Не знаю
Еще поработаю
Никогда не поменяю
Собираюсь (полгода)
Собираюсь (год)
Уже поменял



Посмотреть результаты
Другие опросы ...

 

Лента RSS, новости сайта Новости сайта
Лента RSS, новости форума Новости форума
  Bookmark and Share

Архив исходников

   
  Базы данных
  Графика & Мультимедиа
  Сети & Интернет
  Система
  Разное
   

Кнопки, Ссылки и Баннеры ...

 


Automatic translation


English German French Italian Spanish
Portuguese Greece Japan Chinese Korean


Ссылки и Баннеры


скрыть

 

Delphi Sources

Delphi Sources

СТАТЬИ

 

. : Ваша собственная Интернет-радиостанция в локальной (и глобальной) сети : .

 

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

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


Пишем программу

   Передача данных осуществляется компонентом TWMStreamedOut. Разместим этот компонент в форме приложения.
 

Компонент TWMStreamedOut в окне формы приложения

Компонент TWMStreamedOut в окне формы приложения


   В Инспекторе объектов следует настроить важнейшие свойства объекта WMStreamedOut1.
 

Свойства объекта WMStreamedOut1 в окне Object inspector

Свойства объекта WMStreamedOut1 в окне Object inspector


   Свойство DesiredBitrate позволяет установить скорость и качество передачи данных. Скажем сразу, что фактическая скорость передачи данных может быть ниже, чем та, которую мы выбрали. Дело в том, что система Windows Media предоставляет нам несколько кодеков, каждый из которых работает с фиксированным набором входных форматов аудио-данных. Результирующий формат данных, созданных кодеком, зависит от типа кодека и входного формата данных, в большей степени, чем от заданного нами битрейта. Компонент TWMStreamedOut сам подбирает оптимальный кодек (можно пойти и по более сложному пути - выбрать нужный коде и формат вручную, но сейчас мы рассматриваем самое простое решение).
   Поскольку все кодеки являются частью формата Windows Media Audio, принимающая программа (Windows Media Player) справится с любым сочетанием.
   Свойство Id3V2Tags позволяет нам добавить текстовую информацию к передаваемой записи (эта информация будет отображаться в принимающей программе). Свойство MaxClients позволяет указать максимальное число одновременных подключений к нашей радиостанции (если присвоить этому свойству значение 0, максимально допустимое число клиентов будет неограниченным).
   В свойстве Port мы указываем номер порта, по которому наша программа будет ожидать запросы на подключение.
   С помощью свойства Input мы указываем объекту WMStreamedOut1 объект-источник данных. Обзор компонентов-источников аудиоданных NewAC выходит за рамки этой статьи. В нашем примере мы используем компонент DXAudioIn, который позволяет передавать звук, поступающий на различные входы ваших звуковых карт или просто работать в режиме "What U hear" - "все, что вы слышите", если ваше оборудование поддерживает такой режим.

   В обработчике события OnClick кнопки StartButton, запускающей передачу, достаточно написать:
 


procedure TForm1.StartButtonClick(Sender: TObject);
begin
  StartButton.Enabled := False;
  WMStreamedOut1.Run;
end;


   Вы можете скачать программу в виде исходных текстов (6 Кб, проект Delphi 2007) или в скомпилированном виде (268 Кб).
   Требуемые компоненты для работы исходника можно скачать на сайте автора - www.symmetrica.net, либо тут (1,2 Мб).


Начинаем радиовещание

   После запуска программы нам остается выбрать аудиоустройство, с которого мы будем транслировать звук, и щелкнуть кнопку "Старт".
 

Интернет-радиостанция в работе

Интернет-радиостанция в работе


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


Прослушивание

   Для того чтобы "настроиться" на нашу радиостанцию, нужно запустить проигрыватель Windows Media, выбрать команду "Файл >> Открыть URL-адрес…" и в открывшемся окне ввести адрес вида:

mms://<имя_узла>:<порт>

например, так как показано на рисунке.
 

Интернет-радиостанция


   На всякий случай поясню, что "порт" должен соответствовать тому значению, которое мы указали в свойстве Port объекта WMStreamedOut1.

   После этого вы можете насладиться прослушиванием.
 

Windows Media Player


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

Дата: 16.07.2008, Автор: Андрей Боровский.
Оригинал статьи в формате Word (74 Кб): internet-radio.zip






Назад

   

 



























































































































 

© 2004-2018 "DS"

Отправить письмо / Реклама


ВКонтакте   Facebook   Twitter