Голосование

Какую ОС Вы используете?

Windows 98/ME
Windows NT
Windows 2000
Windows XP
Windows 2003
Windows Vista
Windows 7
Windows 8
Windows 10
Linux
Другая ОС



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

 

Лента 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