ОсновноеRadiotalkПользовательское
Технологии вещания, софт, скрипты
6   •   Посмотреть все темы

Скрипты PAL для Sam Broadcaster

 

21
djluk @djluk
Привет всем!
А может кто знает как определить с помощью скрипта продолжительность какого-то трека?

1
kepu @kepu
Zdravstvuite !

a kakoi skript podaidiot, chtob v kajdi krugli chas probivali chasi ?

Отредактировано kepu - 07.10.2009
36
lespaul43 @lespaul43
Решил собрать все популярные скрипты в одном месте (часто ищут одно и то же):

Проигрывание трэка поверх звучащего:

var Song : TSongInfo;
var P : TPlayer;

PAL.Loop := True; // скрипт будет выполнятся постоянно
PAL.WaitForTime('+00:10:00'); // задержка в 10 секунд

P := SoundFX; // через что играть
if P <> nil then
begin
Song := CAT['Каталог'].ChooseSong(1,NoRules);
if Song <> nil then
begin
P.QueueSong(Song); //
P.Play;
end;
end;

Проигрывание трэка через 5 песен:


PAL.Loop := True; // скрипт будет выполнятся постоянно
PAL.WaitForPlayCount(5); // ставим задержку на 5 треков //выбераем случайный трек из "Каталог" и ставим его вверх очереди
CAT['Каталог'].QueueTop(smRandom, NoRules);

Проигрывание трэка через определённое время:


var Song : TSongInfo;

PAL.Loop := True; //скрипт будет выполнятся постоянно(многократно)
PAL.WaitForTime('+00:30:00'); //ставим задержку на 30 минут
Song := CAT['Каталог'].ChooseSong(smRandom,NoRules); //выбираем трек наугад
//добавляем его в начало очереди
Queue.Add(song,ipTop);

Запуск файла каждый час (отбивка времени):

var P : TPlayer;
var Song : TSongInfo;
var strFile, strPath, strJingle : String;

strPath := 'C:\CLOCK\'; // Путь к папке, где лежат отбивки часов
strJingle := 'C:\CLOCK\start_hour.mp3'; //Путь и название джингла после отбивки часов

PAL.Loop := True;

PAL.WaitForTime('XX:59:15'); //запускаемся в конце каждого часа. 45 сек - время буферезации, подбираем по свом параметрам, вкусам

strFile := strPath + FormatDateTime('hh', now+1/24) + '-00.mp3'; //определяем название файла с нужными часиками. Формат имени файла XX-XX.mp3

P := Aux1;
if P <> nil then
begin

Queue.AddFile(strJingle, ipTop);
Queue.AddFile(strFile, ipTop);



P := ActivePlayer;
if P <> nil then P.FadeToNext;


end;

Отредактировано lespaul43 - 08.10.2009
6
mobilizer @mobilizer
люди я новенький где можно научиться делать такие скрипты бесплатно

5
IgorKrivich @IgorKrivich
Здравствуйте. Подскажите пож-ста,- как заставить работать Event Scheduler. Задача в следующем. В начале каждого часа ежедневно новости, в середине часа реклама. В упор не хочет запускать указанный файл. PAL скриптом не очень мне удобно. Хотелось что-бы Event Scheduler заработал. Спасибо

Отредактировано IgorKrivich - 27.10.2009
5
IgorKrivich @IgorKrivich
IgorKrivich пишет:

Здравствуйте. Подскажите пож-ста,- как заставить работать Event Scheduler. Задача в следующем. В начале каждого часа ежедневно новости, в середине часа реклама. В упор не хочет запускать указанный файл. PAL скриптом не очень мне удобно. Хотелось что-бы Event Scheduler заработал. Спасибо

Разобрался сам

888
Falcon @Falcon
Привет. У меня такой вопрос. Можно ли с помощью такого скрипта (или как либо иначе) создать статистику песен. Тобишь что-то в стиле топ 10

2
Жорик @Жорик
Всем привет ! подскажите как сохранить название трека в текстовый файл и при каждой смене трека происходила перезапись этого файла .

12
Александр @NeSH
Приветствую! У меня такой вопрос. Есть сценарий:
{# Add files to queue script #}
Queue.Clear;
Queue.AddList('E:\Musik\Playlist\Основной.M3U',ipTop);
Queue.Shuffle;
deckA.Play;

По идее он должен очищать последовательность, добавлять новый плейлист, и перемешивать его. После это должно начинаться воспроизведение на дэке А, но этого не происходит (не воспроизводит). В чём ошибка?

468
Klef @Klef
Дека А скорей всего пустая.
рекомендую
ActivePlayer.FadeToNext;

44
Алексей @weradex
СПАСИТЕ... Кто нибуть может подсказать скрипт, который при откритии СЭМа будет запускать все енкодеры сразу?????

468
Klef @Klef
галочка в свойствах энкодера.
там же ставишколичество секунд, через который стартует энкодер

44
Алексей @weradex
Klef СПАСИБО ОГРОМНОЕ

9
Radio_Afrika @Radio_Afrika
var P : TPlayer;
var OldTime : DateTime;

OldTime := Now;

PAL.Loop:=True;

If (OldTime>=T['19:00:00']) AND (OldTime<=T['22:30:00']) Then
begin
CAT['Tusovka3'].QueueTop(smRandom, NoRules);
PAL.WaitForPlayCount(5);
End;

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

1
teremnet @teremnet
Приветствую всех!!!! Нужна помощь, т.к. я в .pal скриптах совсем не понимаю!!! Суть такова: есть встроенный СЭМовский скрипт, который выводит нужную инфу из txt файла, чередуя ее с исполнителем и названием текущего трека, нужно сделать так чтоб инфа чередовалась не с title, а с названием станции. Помогите организовать, вот сам скрипт:
{ CONFIGURATION }
{==================================================}
const bannertext_file = 'C:\Program Files\SpacialAudio\SAMBC\PAL\BannerText.txt';
const change_interval = '+00:00:15';
{==================================================}


{ IMPLEMENTATION }
{--------------------------------------------------}
var CurSong : TSongInfo;
var UpdSong : TSongInfo;
var Banners : TStringList;
var Toggle : Boolean = True;
var LinePos : Integer = 0;

{Set this script to restart itself}
PAL.Loop := True;

{ Create some objects that we will need}
UpdSong := TSongInfo.Create;
Banners := TStringList.Create;

{ Load banner lines into stringlist object }
if FileExists(bannertext_file) then
Banners.LoadFromFile(bannertext_file)
else
WriteLn('Banner source file does not exist!');

LinePos := 0;
while (LinePos<Banners.Count) do
begin
{Wait for specified time}
PAL.WaitForTime(change_interval);

{Retrieve the current banner line and assign it to song object}
UpdSong['title'] := Banners[LinePos];

{Tell encoders to update song information:
When Toggle is True, we use the normal song information from
the active player - otherwise we use our banner song object
}
Toggle := not Toggle;
if Toggle then
begin
CurSong := ActivePlayer.GetSongInfo;
Encoders.SongChange(CurSong);
CurSong.Free;
end
else
Encoders.SongChange(UpdSong);

{Move to the next line in the banner file before we continue}
LinePos := LinePos + 1;
end;

{Destroy objects once we no longer need them}
Banners.Free;
UpdSong.Free;

Буду благодарен за помощь :)

57
Алексей @radioset
А скажите можно ли с помощью скрипта принудительно остановить деку А и В??
И если можно хотелось бы глянуть на этот скрипт))

349
Юрий @Всё-просто
Ребят помогите! Вот есть pal скрипт который выводит в плеерах инфу вида:

Релиз: [название текущего трека] Заказал(а): [текст] ну потом через некоторое время строчка меняется и показывается просто название станции и название трека и сообветственно все сначало.

Вот код :

var D : TDataSet;
var P : TPlayer;
var Song : TSongInfo;
var S : TSongInfo;

PAL.Loop := true;

procedure pause();
begin
PAL.WaitForTime ('+00:00:07');
end;

S:=TSongInfo.Create;

P:= ActivePlayer;
Song := P.GetSongInfo;
S['artist'] := '';
S['duration'] := 0;
S['title'] := 'Трек: ' + Song['artist'] + ' - ' + Song['title'];
Encoders.SongChange(S);
PAL.WaitForTime ('+00:00:15');

P := ActivePlayer;
Song := P.GetSongInfo;
S['artist'] := '';
S['duration'] := 0;
if StrToInt(Song['albumyear'])>1980 then S['title'] := 'Релиз: ' + Song['album']+' ('+Song['albumyear']+')' else S['title'] := 'Релиз: ' + Song['album'];
Encoders.SongChange(S);
PAL.WaitForTime ('+00:00:07');

if song['requestid'] > 0 then

D := Query('SELECT * FROM requestlist WHERE ID = :J AND SongID = :I',[Song['requestID'],Song['ID']],true);

if D['name'] <> '' then
begin
S['artist'] := '';
S['title'] := 'Заказал(а): '+D['name'];
S['duration'] := 0;
Encoders.SongChange(S);
pause();
end;

if D['msg'] <> '' then
begin
S['artist'] := '';
S['title'] := 'Текст: '+D['msg'];
S['duration'] := 0;
Encoders.SongChange(S);
pause();
pause();
end;

D.Free;
P.Free;
Song.Free;

Но проблема в том что я что то не пойму как именно пользоваться этим скриптом и куда вводить Имя того кто заказал трек.
Рассшифруйте плз.

28
Slash @Slash
данй скрипт вы пихаете в СЕМ.
Если по стандарту, то в Desktop B находиться меню PAL Script ..туда и добавляете файл. Расширение файла (в названии после точки) должно быть ".pal" .Добавив просто запускаете скрпит.
Скрипт сам выводит имя заказавшего если он указал последнее при заказе песни.

332
Игорь @JamStyle
Всё-просто пишет:

Ребят помогите! Вот есть pal скрипт который выводит в плеерах инфу вида:

Релиз: [название текущего трека] Заказал(а): [текст] ну потом через некоторое время строчка меняется и показывается просто название станции и название трека и сообветственно все сначало.

Вот код :

var D : TDataSet;
var P : TPlayer;
var Song : TSongInfo;
var S : TSongInfo;

PAL.Loop := true;

procedure pause();
begin
PAL.WaitForTime ('+00:00:07');
end;

S:=TSongInfo.Create;

P:= ActivePlayer;
Song := P.GetSongInfo;
S['artist'] := '';
S['duration'] := 0;
S['title'] := 'Трек: ' + Song['artist'] + ' - ' + Song['title'];
Encoders.SongChange(S);
PAL.WaitForTime ('+00:00:15');

P := ActivePlayer;
Song := P.GetSongInfo;
S['artist'] := '';
S['duration'] := 0;
if StrToInt(Song['albumyear'])>1980 then S['title'] := 'Релиз: ' + Song['album']+' ('+Song['albumyear']+')' else S['title'] := 'Релиз: ' + Song['album'];
Encoders.SongChange(S);
PAL.WaitForTime ('+00:00:07');

if song['requestid'] > 0 then

D := Query('SELECT * FROM requestlist WHERE ID = :J AND SongID = :I',[Song['requestID'],Song['ID']],true);

if D['name'] <> '' then
begin
S['artist'] := '';
S['title'] := 'Заказал(а): '+D['name'];
S['duration'] := 0;
Encoders.SongChange(S);
pause();
end;

if D['msg'] <> '' then
begin
S['artist'] := '';
S['title'] := 'Текст: '+D['msg'];
S['duration'] := 0;
Encoders.SongChange(S);
pause();
pause();
end;

D.Free;
P.Free;
Song.Free;

Но проблема в том что я что то не пойму как именно пользоваться этим скриптом и куда вводить Имя того кто заказал трек.
Рассшифруйте плз.

Этот скрипт привязан к samPHPweb Если там, человек заказал трек, он указывает имя, которое в свою очередь и показывается в метадате!

833
metra52 @metra52
Помогите нужно написать скрипт который будет перед тем как пускать название песни на сервер если есть русские символы менять их на английские т.к шоткаст не понимает русского языка