SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian > Релизы/Releases

Reply
 
Thread Tools Display Modes
Old 10/12/2011, 12:26 PM   #1
jhonyxakep
Gangsta
 
jhonyxakep's Avatar
 
Join Date: May 2011
Location: Russia, Moscow
Posts: 790
Reputation: 43
Thumbs up Server Broadcaster - Полноценная радиостанция с помощью плагина

Server Broadcaster
Версия 1.6.0
Автор: jhonyxakep (Андрей Недобыльский)
Mail:jhonyxakep@qip.ru
ICQ:354794596
Jabber:jhonyxakep@qip.ru

Описание:

Плагин позволяет превратить сервер SA:MP в полноценную интернет радиостанцию
Работает на подобии Icecast/Shoutcast серверов.

Плагин использует библиотеку BASS (un4seen.com) для воспроизведения и вещания звука.

Установка:

Положите файлы из папки plugins в папку plugins на сервере.

Windows:
В связи с особенностями сервера, файлы из папки system\win\ надо поместить в корневой каталог сервера (те там, где samp-server.exe) или в системный каталог system32.

*nix:
Файлы из папки system\nix\ надо положить в одну из папок /lib на сервере (/lib, /usr/lib, /usr/local/lib), однако рекомендую во все.


Пропишите плагин в секции plugins в конфиге SA:MP.

Для работы с функциями плагина подключите файл radio.inc к вашему скрипту.


Для *nix систем нужен установленный stdin/stdout энкодер (напирмер для вещания mp3 требуется Lame. Установка Lame для Debian/Ubuntu apt-get install lame)

Использование:

Функции плагина:

PlaySoundFileToStream(file[]); - Добавляет файл в эфир
PlaySoundUrlToStream(file[]); - Добавляет радиостанцию или удаленный файл в эфир
IsServerActive(); - возвращает true если сервер запущен, false если сервер остановлен
StopPlaying(); - удаляет текущий файл из эфира
SoundServerStart(commandline[],port[]); - Запускает сервер
SoundServerStop(); - Останавливает сервер

KickListener(listener[]); - кикает слушателя с сервера с последующим вызовом OnListenerDisconnect
SetStationNameURL(name[],URL[]); - Изменяет название и ссылку на сайт станции


Для запуска сервера вещания используется функция SoundServerStart.
Первый параметр функции – командная строка для запуска кодера. Если вы хотите использовать формат MP3, то вставьте строку "lame -r -s 44100 -b 128 –"
Где 128 это количество кбит/сек, которое вы хотите использовать для вещания. Если вам понадобится использовать другой формат вещания, вы можете взять любой кодер, поддерживающий принятие данных с stdin.

Второй аргумент – порт на котором надо вещать, или ip адрес, на который будет привязан сервер(если у вас несколько сетевых интерфейсов):

Например для запуска сервера на 8000 порту используйте "8000"
Для привязки сервера к адресу 127.0.0.1 используйте "127.0.0.1:8000"

После запуска сервера надо добавить файл в эфир, функцией PlaySoundFileToStream/PlaySoundUrlToStream.
Параметр file это путь до MP3, OGG, WAV, AIFF файла, который будет воспроизведен в эфире.

ВНИМАНИЕ! Добавлять новый файл в эфир стоит только после окончания предыдущего файла ИЛИ после вызова функции StopPlaying, иначе слушать одновременно несколько песен будет не очень приятно

Функция SoundServerStop останавливает сервер.

Колбеки:

OnSoundFileEnd(); - Вызывается когда достигнут конец текущего файла, или воспроизведение дальше невозможно
OnListenerConnect(listener[],path[]); - При подключении слушателя. Аргумент listener содержит в себе IP адрес и порт слушателя, path cодержит путь до файла открываемый слушателем.
OnListenerDisonnect(listener[]); - при отсключении слушателя. Аргумент listener содержит в себе IP адрес и порт слушателя

Плагин будет еще обновляться, и наполнятся функциями.

Внутри архива присутствует исходной код, демонстрационный FilterScript, и плагины

Закачка:

в прикреплении
Attached Files
File Type: zip RadioRelease.zip (827.7 KB, 94 views)

Last edited by jhonyxakep; 11/03/2012 at 03:38 AM. Reason: Новая версия
jhonyxakep is offline   Reply With Quote
Old 10/12/2011, 01:37 PM   #2
DANGER1979
Gangsta
 
DANGER1979's Avatar
 
Join Date: Sep 2009
Location: Belarus
Posts: 793
Reputation: 21
Default Re: Server's Radio Plugin

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

Хотелось бы услышать то отличие, которое я не смогу реализовать обычными скриптами.
__________________
Virtual World Developer
DANGER1979 is offline   Reply With Quote
Old 10/12/2011, 01:39 PM   #3
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,752
Reputation: 138
Default Re: Server's Radio Plugin

Ну как я понял это больше приблуда для контроля аудиопотоков, а не игрового процесса.
Т.е. ты игрокам скармливаешь свои поток, а вот тем что в нем играет ты управлешь через этот плагин.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline   Reply With Quote
Old 10/12/2011, 01:41 PM   #4
jhonyxakep
Gangsta
 
jhonyxakep's Avatar
 
Join Date: May 2011
Location: Russia, Moscow
Posts: 790
Reputation: 43
Default Re: Server's Radio Plugin

Quote:
Т.к. вещание обычного радио можно стандартными ф-иями сампа.
Например?

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

Quote:
Т.е. ты игрокам скармливаешь свои поток, а вот тем что в нем играет ты управлешь через этот плагин.
Именно
jhonyxakep is offline   Reply With Quote
Old 10/12/2011, 02:11 PM   #5
DANGER1979
Gangsta
 
DANGER1979's Avatar
 
Join Date: Sep 2009
Location: Belarus
Posts: 793
Reputation: 21
Default Re: Server's Radio Plugin

Интересно.
Хотелось бы увидеть больше примеров использования.
Допустим для TeamSpeak3 или просто для микрофона.
__________________
Virtual World Developer
DANGER1979 is offline   Reply With Quote
Old 10/12/2011, 02:18 PM   #6
jhonyxakep
Gangsta
 
jhonyxakep's Avatar
 
Join Date: May 2011
Location: Russia, Moscow
Posts: 790
Reputation: 43
Default Re: Server's Radio Plugin

ТимСпик на такой базе реализовать не получится (потомучто 5ти секундный буффер), хотя попробовать можно.
Микрофон с сервера чтоли? о0 Не думаю, что это удобно.

Кстати
Quote:
ВНИМАНИЕ! Добавлять новый файл в эфир стоит только после окончания предыдущего файла ИЛИ после вызова функции StopPlaying, иначе слушать одновременно несколько песен будет не очень приятно
может и помочь, например запустив 2 файла одновременно мы можем сделать небольшой микс звуков.

Честно говоря других применения я найти не могу, это надо сидеть и думать или взять плагин тогда, когда это понадобится
jhonyxakep is offline   Reply With Quote
Old 10/12/2011, 02:20 PM   #7
jhonyxakep
Gangsta
 
jhonyxakep's Avatar
 
Join Date: May 2011
Location: Russia, Moscow
Posts: 790
Reputation: 43
Default Re: Server's Radio Plugin

Вот идея: Звуковая реклама на сервере по расписанию. Можно просто запускать каждому входящему звуковой поток, и через определенное время выводить в эфир рекламу от спонсора =)
jhonyxakep is offline   Reply With Quote
Old 11/12/2011, 06:18 AM   #8
jhonyxakep
Gangsta
 
jhonyxakep's Avatar
 
Join Date: May 2011
Location: Russia, Moscow
Posts: 790
Reputation: 43
Default Re: Server's Radio Plugin

Добавил новую версию.
jhonyxakep is offline   Reply With Quote
Old 09/03/2012, 07:46 AM   #9
jhonyxakep
Gangsta
 
jhonyxakep's Avatar
 
Join Date: May 2011
Location: Russia, Moscow
Posts: 790
Reputation: 43
Default Re: Server's Radio Plugin

Добавил версию для *nix, поправил описание что-бы было более понятно что есмь это =)
jhonyxakep is offline   Reply With Quote
Old 09/03/2012, 04:51 PM   #10
AirKite
Gangsta
 
AirKite's Avatar
 
Join Date: Feb 2009
Posts: 734
Reputation: 21
Default Re: Server's Radio Plugin

Молоток. Очень нужная вещь.

Для тех кто не понял для чего это нужно. Простой пример: Представьте себе часовой микс. т.е. мп3 файл с продолжительностью в 1 час, и вы хотите что бы он звучал в клубе. Ну ладно, заливаете вы файл на хост и включаете прямо в самп. Всё бы нечего, но как минимум мп3 файл при запуске всегда будет играть с самого начала, в то время когда другие (зашедшие в клуб раньше) уже будут дослушивать конец микса.

Вопрос к автору: Есть ли какие ни будь ограничения по подключениям (например кол-во) и будет ли что то типа KickListener(listener[]); - например для кика тех, кто не присутствует на сервере или для контроля лишний нагрузки создаваемой каким ни будь умником.
AirKite is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



All times are GMT. The time now is 05:05 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.