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

Формирование плейлиста в SAM при помощи .pal

 

117
lyfm @lyfm
Итак, сегодня для того, чтобы в определённое время играла определённая рубрика в рандоме я использую следующий скрипт (в данном случае у нас категория "morning"):
Показать текст


Тут, я думаю, ничего объяснять не надо.
Раньше мне хватало простого рандома, но сейчас я бы хотел установить параметры ротации как на Auto DJ.
Проблема в том, что Auto DJ формирует плейлист из предоставленных ему категорий вобщем-то как надо, но установить время для определённой категории невозможно. ТО есть: по правилам ротации (утренний-дневной-вечерний-ночной эфир) он не ротирует треки, а всё впремешку. Соответственно, нужно пользоваться подобным скриптом, но только с применением правил ротации.

"QueueBottom(smRandom, NoRules);" - Если же сказать скрипту, чтобы он делал это по правилам, то он будет обычным авто-диджеем и будет делать соверешенно тоже самое - все треки будут идти в независимости от времени, отведённому им.

Нужно сделать авто-диджей с блек джеком и ш.. временными рамками для определённой категории.
Такие дела. Возможно?

ps Простите моё нубство, ибо дизайнер я, не кодер. Совсем.

Добавлено спустя 6 минут 2 секунды:
Забыл написать, что данная ротация хрень посредством такого скрипта очень легко сбивает расписание, ибо джинглы никто не отменял

117
lyfm @lyfm
хмм.. а куда делись все старожилы сайта? я что-то пропустил?

468
Klef @Klef
lyfm пишет:

хмм.. а куда делись все старожилы сайта? я что-то пропустил?

как куда, спились все

pal синтаксис уже забыл, ибо с него давно слез :)
но наметку дам:

var P : TPlayer;
var OldTime : DateTime;

OldTime := Now;

PAL.Loop:=True;
PAL.WaitForQueue(1);

If (OldTime>T['00:00:00']) AND (OldTime<=T['08:00:00']) Then
begin
CAT['night'].QueueBottom(smLemmingLogic, EnforceRules);
End;

If (OldTime>T['08:00:00']) AND (OldTime<=T['14:00:00']) Then
begin
CAT['morning'].QueueBottom(smLemmingLogic, EnforceRules);
End;

If (OldTime>T['14:00:00']) AND (OldTime<=T['18:00:00']) Then
begin
CAT['afternoon'].QueueBottom(smLemmingLogic, EnforceRules);
End;

If (OldTime>T['18:00:00']) AND (OldTime<=T['22:00:00']) Then
begin
CAT['evening'].QueueBottom(smLemmingLogic, EnforceRules);
End;

If (OldTime>T['22:00:00']) AND (OldTime<=T['23:59:59']) Then
begin
CAT['night'].QueueBottom(smLemmingLogic, EnforceRules);
End;

что такое night, morning, afternoon и evening объяснять не надо ;)

117
lyfm @lyfm
Всё равно они идут беспорядочно. А, хотя нет, теперь они чередуются в плейлисте: сначала рубрика morning, потом другая, потом другая, потом другая, потом опять morning. Вопрос, сами категории папкам присваивать в Playlist Rotation Rules? там папкам я дал категории и прописал Cat['night'].QueueBottom(smLemmingLogic, EnforceRules);

Так?

117
lyfm @lyfm
хмм, а вот нифига не так, я не стал устанавливать ничего в Playlist Rotation Rules, оставив там всё стандартно просто включив скрипт. Интересно получилось

468
Klef @Klef
если же указанный выше код работает, что я не могу гарантировать :)
то он должен работать так:
кидать в корзину воспроизведения из разных самовских папок плей листов (в зависимости от времени)
согласно правилам ротации (не повторять что то раньше чем)

23
f4ke @f4ke
Или скрипт не рабочий или я не правильно делаю.

Вот скрипт
var P : TPlayer;
var OldTime : DateTime;

OldTime := Now;

PAL.Loop:=True;
PAL.WaitForQueue(0);

If (OldTime>T['18:40:00']) AND (OldTime<=T['20:00:00']) Then
begin
CAT['Station IDs (All)'].QueueBottom(smLemmingLogic, EnforceRules);
End;


Все равно в 18:40 не началась трансляция с папки

1572
KyPIIaToB @KyPIIaToB
Возможно поможет

**********

117
lyfm @lyfm
Ну кстати Klef'овский скрипт отлично пашет и делает то, что надо

23
f4ke @f4ke
Хм, я в PAL, не опытен так как и в радио, но когда я загрузил этот скрипт доигрует трек должны играть треки с пл что указаний в скрипте, а в меню пишет "Waiting for queue to reach 1 items"

117
lyfm @lyfm
Ну, пишет и добавляет

23
f4ke @f4ke
У меня оно в наглую не добавляет! Вот скрипт я даже не делал разные папки просто что бы с одной хотя бы загружало

var P : TPlayer;
var OldTime : DateTime;

OldTime := Now;

PAL.Loop:=True;
PAL.WaitForQueue(1);

If (OldTime>T['00:00:00']) AND (OldTime<=T['08:00:00']) Then
begin
CAT['123'].QueueBottom(smLemmingLogic, EnforceRules);
End;

If (OldTime>T['08:00:00']) AND (OldTime<=T['14:00:00']) Then
begin
CAT['123'].QueueBottom(smLemmingLogic, EnforceRules);
End;

If (OldTime>T['14:00:00']) AND (OldTime<=T['18:00:00']) Then
begin
CAT['123'].QueueBottom(smLemmingLogic, EnforceRules);
End;

If (OldTime>T['18:00:00']) AND (OldTime<=T['22:00:00']) Then
begin
CAT['123'].QueueBottom(smLemmingLogic, EnforceRules);
End;

If (OldTime>T['22:00:00']) AND (OldTime<=T['23:59:59']) Then
begin
CAT['123'].QueueBottom(smLemmingLogic, EnforceRules);
End;


Папку 123 я создал в меню Playlist, в разделе Playlist, вместе с моей папкой 123 там ещё есть папки Tracks, DemoTracks. Все же правильно ? Режими пробивал разные - Queue, Auto Dj, Manual.

468
Klef @Klef
2 f4ke
задача к скрипту, а то у меня сердце обливается кровавыми слезами, смотря на код, который вы указали в своем предыдущем посте.