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

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

 

888
Falcon @Falcon
radioplus пишет:

Есть скрипт, который постоянно выпускает джинглы:

PAL.Loop := True;
PAL.WaitForPlayCount(1);
PAL.WaitForTime('+00:02:00');
CAT['Station IDs (All)'].QueueTop(smLRPA, NoRules);


Как его отключать в определённые часы? К примеру в воскресенье с 16:00:00 до 16:50:00 и в понедельник с 0:00:00 до 0:50:00, чтобы в это время он не втсавлял джинглы после каждого трека?
Спасибо!

Вот отличный пример на сайте сэма:
**********

0
43
_ @radioplus
Мне нужен скрипт, который будет выключать джинглы, а не включать в определённое время! То есть как сделать так, чтобы скрипт не выполнялся в определённый день и в определённое время, к примеру в воскресенье с 15:00 до 16:00? может так:
PAL.Loop := True;
var mytime : DateTime = now;
var I : Integer;
var start_time, end_time : DateTime;
end_time := date + EncodeTime(15,59,30,0);
start_time := date + EncodeTime(17,15,00,0);
if DayOfWeek(Now) = Sunday then
begin
if( mytime >= start_time) and (mytime <= end_time) Then
begin
PAL.WaitForPlayCount(1);
PAL.WaitForTime('+00:03:00');
CAT['Station IDs (All)'].QueueTop(smLRPA, NoRules);
end;
end;


Так он не запускается пока не дождётся времени старта! Скорее всего как то иначе, только вот как?

0
888
Falcon @Falcon
if DayOfWeek(Now) != Sunday then
begin
if( mytime >= start_time) and (mytime <= end_time) Then
begin
PAL.WaitForPlayCount(1);
PAL.WaitForTime('+00:03:00');
CAT['Station IDs (All)'].QueueTop(smLRPA, NoRules);
end;
end;

0
43
_ @radioplus
и в чём разница? Это скрипт включения программы в определённое время. А мне нужен отключения работы скрипта в определённый день и время.

0
1572
KyPIIaToB @KyPIIaToB
radioplus пишет:

Мне нужен скрипт, который будет выключать джинглы, а не включать в определённое время!

А я что тебе сказал? создаешь правило и все.

0
43
_ @radioplus
-

Отредактировано radioplus - 13.04.2022
0
6
Ëкарный @isaul
Друзья помогите!Я прочитал много тем но так и не нашел ответ!В общем что нужно прописать в PAL скрипте что бы песни играли не в случайном порядке (Random) а по порядку (1-20) выручайте!

0
57
LAZAR @LAZ2735
Нашёл скрипт времени с новостями (или тем что вам захочется)
  1. var strFile, strPath : String;
  2. var P,F : Tplayer;
  3. strPath := 'd:\RADIO\Clock\';
  4. PAL.Loop:=True;
  5. PAL.WaitForTime('XX:59:50');
  6. PAL.LockExecution;
  7. strFile := strPath + FormatDateTime('hh', now+1/24) + '-00.mp3';
  8. Case strFile Of
  9. 'd:\RADIO\Clock\07-00.mp3' : Begin
  10. If (DayOfWeek(Now) = Sunday) Or (DayOfWeek(Now) = Monday) then
  11. Queue.AddFile('d:\RADIO\news\новость 18.mp3', ipTop)
  12. Else
  13. Queue.AddFile('d:\RADIO\news\новость 20.mp3', ipTop);
  14. Queue.AddFile(strFile, ipTop);
  15. Aux1.QueueSong(Queue.NextInQueue);
  16. If DeckA.Status = psPlaying then
  17. Begin
  18. DeckB.QueueSong(Queue.NextInQueue);
  19. DeckA.FadeToPause;
  20. F := DeckA;
  21. P := DeckB;
  22. Aux1.FadeToPlay;
  23. End
  24. Else
  25. Begin
  26. DeckA.QueueSong(Queue.NextInQueue);
  27. DeckB.FadeToPause;
  28. F := DeckB;
  29. P := DeckA;
  30. Aux1.FadeToPlay;
  31. End;
  32. End;
  33. 'd:\RADIO\Clock\08-00.mp3' : Begin
  34. If (DayOfWeek(Now) = Sunday) Or (DayOfWeek(Now) = Monday) then
  35. Queue.AddFile('d:\RADIO\news\новость 18.mp3', ipTop)
  36. Else
  37. Queue.AddFile('d:\RADIO\news\новость 20.mp3', ipTop);
  38. Queue.AddFile(strFile, ipTop);
  39. Aux1.QueueSong(Queue.NextInQueue);
  40. If DeckA.Status = psPlaying then
  41. Begin
  42. DeckB.QueueSong(Queue.NextInQueue);
  43. DeckA.FadeToPause;
  44. F := DeckA;
  45. P := DeckB;
  46. Aux1.FadeToPlay;
  47. End
  48. Else
  49. Begin
  50. DeckA.QueueSong(Queue.NextInQueue);
  51. DeckB.FadeToPause;
  52. F := DeckB;
  53. P := DeckA;
  54. Aux1.FadeToPlay;
  55. End;
  56. End;
  57. 'd:\RADIO\Clock\09-00.mp3' : Begin
  58. Queue.AddFile('d:\RADIO\news\гороскоп.mp3', ipTop);
  59. Queue.AddFile(strFile, ipTop);
  60. Aux1.QueueSong(Queue.NextInQueue);
  61. If DeckA.Status = psPlaying then
  62. Begin
  63. DeckB.QueueSong(Queue.NextInQueue);
  64. DeckA.FadeToPause;
  65. F := DeckA;
  66. P := DeckB;
  67. Aux1.FadeToPlay;
  68. End
  69. Else
  70. Begin
  71. DeckA.QueueSong(Queue.NextInQueue);
  72. DeckB.FadeToPause;
  73. F := DeckB;
  74. P := DeckA;
  75. Aux1.FadeToPlay;
  76. End;
  77. End;
  78. 'd:\RADIO\Clock\11-00.mp3' : Begin
  79. Queue.AddFile('d:\RADIO\news\гороскоп.mp3', ipTop);
  80. Queue.AddFile(strFile, ipTop);
  81. Aux1.QueueSong(Queue.NextInQueue);
  82. If DeckA.Status = psPlaying then
  83. Begin
  84. DeckB.QueueSong(Queue.NextInQueue);
  85. DeckA.FadeToPause;
  86. F := DeckA;
  87. P := DeckB;
  88. Aux1.FadeToPlay;
  89. End
  90. Else
  91. Begin
  92. DeckA.QueueSong(Queue.NextInQueue);
  93. DeckB.FadeToPause;
  94. F := DeckB;
  95. P := DeckA;
  96. Aux1.FadeToPlay;
  97. End;
  98. End;
  99. 'd:\RADIO\Clock\12-00.mp3' : Begin
  100. Queue.AddFile('d:\RADIO\news\новость 12.mp3', ipTop);
  101. Queue.AddFile(strFile, ipTop);
  102. Aux1.QueueSong(Queue.NextInQueue);
  103. If DeckA.Status = psPlaying then
  104. Begin
  105. DeckB.QueueSong(Queue.NextInQueue);
  106. DeckA.FadeToPause;
  107. F := DeckA;
  108. P := DeckB;
  109. Aux1.FadeToPlay;
  110. End
  111. Else
  112. Begin
  113. DeckA.QueueSong(Queue.NextInQueue);
  114. DeckB.FadeToPause;
  115. F := DeckB;
  116. P := DeckA;
  117. Aux1.FadeToPlay;
  118. End;
  119. End;
  120. 'd:\RADIO\Clock\13-00.mp3' : Begin
  121. Queue.AddFile('d:\RADIO\news\новость 12.mp3', ipTop);
  122. Queue.AddFile(strFile, ipTop);
  123. Aux1.QueueSong(Queue.NextInQueue);
  124. If DeckA.Status = psPlaying then
  125. Begin
  126. DeckB.QueueSong(Queue.NextInQueue);
  127. DeckA.FadeToPause;
  128. F := DeckA;
  129. P := DeckB;
  130. Aux1.FadeToPlay;
  131. End
  132. Else
  133. Begin
  134. DeckA.QueueSong(Queue.NextInQueue);
  135. DeckB.FadeToPause;
  136. F := DeckB;
  137. P := DeckA;
  138. Aux1.FadeToPlay;
  139. End;
  140. End;
  141. 'd:\RADIO\Clock\15-00.mp3' : Begin
  142. Queue.AddFile('d:\RADIO\news\новость 15.mp3', ipTop);
  143. Queue.AddFile(strFile, ipTop);
  144. Aux1.QueueSong(Queue.NextInQueue);
  145. If DeckA.Status = psPlaying then
  146. Begin
  147. DeckB.QueueSong(Queue.NextInQueue);
  148. DeckA.FadeToPause;
  149. F := DeckA;
  150. P := DeckB;
  151. Aux1.FadeToPlay;
  152. End
  153. Else
  154. Begin
  155. DeckA.QueueSong(Queue.NextInQueue);
  156. DeckB.FadeToPause;
  157. F := DeckB;
  158. P := DeckA;
  159. Aux1.FadeToPlay;
  160. End;
  161. End;
  162. 'd:\RADIO\Clock\16-00.mp3' : Begin
  163. Queue.AddFile('d:\RADIO\news\новость 15.mp3', ipTop);
  164. Queue.AddFile(strFile, ipTop);
  165. Aux1.QueueSong(Queue.NextInQueue);
  166. If DeckA.Status = psPlaying then
  167. Begin
  168. DeckB.QueueSong(Queue.NextInQueue);
  169. DeckA.FadeToPause;
  170. F := DeckA;
  171. P := DeckB;
  172. Aux1.FadeToPlay;
  173. End
  174. Else
  175. Begin
  176. DeckA.QueueSong(Queue.NextInQueue);
  177. DeckB.FadeToPause;
  178. F := DeckB;
  179. P := DeckA;
  180. Aux1.FadeToPlay;
  181. End;
  182. End;
  183. 'd:\RADIO\Clock\18-00.mp3' : Begin
  184. Queue.AddFile('d:\RADIO\news\новость 18.mp3', ipTop);
  185. Queue.AddFile(strFile, ipTop);
  186. Aux1.QueueSong(Queue.NextInQueue);
  187. If DeckA.Status = psPlaying then
  188. Begin
  189. DeckB.QueueSong(Queue.NextInQueue);
  190. DeckA.FadeToPause;
  191. F := DeckA;
  192. P := DeckB;
  193. Aux1.FadeToPlay;
  194. End
  195. Else
  196. Begin
  197. DeckA.QueueSong(Queue.NextInQueue);
  198. DeckB.FadeToPause;
  199. F := DeckB;
  200. P := DeckA;
  201. Aux1.FadeToPlay;
  202. End;
  203. End;
  204. 'd:\RADIO\Clock\19-00.mp3' : Begin
  205. If (DayOfWeek(Now) <> Sunday) AND (DayOfWeek(Now) <> Saturday) then
  206. Queue.AddFile('d:\RADIO\news\новость 18.mp3', ipTop);
  207. Queue.AddFile(strFile, ipTop);
  208. Aux1.QueueSong(Queue.NextInQueue);
  209. If DeckA.Status = psPlaying then
  210. Begin
  211. DeckB.QueueSong(Queue.NextInQueue);
  212. DeckA.FadeToPause;
  213. F := DeckA;
  214. P := DeckB;
  215. Aux1.FadeToPlay;
  216. End
  217. Else
  218. Begin
  219. DeckA.QueueSong(Queue.NextInQueue);
  220. DeckB.FadeToPause;
  221. F := DeckB;
  222. P := DeckA;
  223. Aux1.FadeToPlay;
  224. End;
  225. End;
  226. 'd:\RADIO\Clock\20-00.mp3' : Begin
  227. If (DayOfWeek(Now) = Sunday) Or (DayOfWeek(Now) = Saturday) then
  228. Queue.AddFile('d:\RADIO\news\новость 18.mp3', ipTop)
  229. Else
  230. Queue.AddFile('d:\RADIO\news\новость 20.mp3', ipTop);
  231. Queue.AddFile(strFile, ipTop);
  232. Aux1.QueueSong(Queue.NextInQueue);
  233. If DeckA.Status = psPlaying then
  234. Begin
  235. DeckB.QueueSong(Queue.NextInQueue);
  236. DeckA.FadeToPause;
  237. F := DeckA;
  238. P := DeckB;
  239. Aux1.FadeToPlay;
  240. End
  241. Else
  242. Begin
  243. DeckA.QueueSong(Queue.NextInQueue);
  244. DeckB.FadeToPause;
  245. F := DeckB;
  246. P := DeckA;
  247. Aux1.FadeToPlay;
  248. End;
  249. End;
  250. Else
  251. Begin
  252. Queue.AddFile(strFile, ipTop);
  253. If DeckA.Status = psPlaying then
  254. Begin
  255. Aux1.QueueSong(Queue.NextInQueue);
  256. DeckA.FadeToPause;
  257. P := DeckA;
  258. F := DeckB;
  259. Aux1.FadeToPlay;
  260. End
  261. Else
  262. Begin
  263. Aux1.QueueSong(Queue.NextInQueue);
  264. DeckB.FadeToPause;
  265. P := DeckB;
  266. F := DeckA;
  267. Aux1.FadeToPlay;
  268. End;
  269. End;
  270. End;
  271. PAL.UnlockExecution;
  272. PAL.WaitForTime('+00:00:09');
  273. P.FadeToPlay;
  274. If P.Status <> psPlaying then F.Play
  275. Else F.QueueSong(Queue.NextInQueue);

0
332
Игорь @JamStyle
LAZ2735 пишет:

Нашёл скрипт времени с новостями (или тем что вам захочется)


Спасибо за скрипт,давно искал...:)

0
7094
Dim @Render
Может подскажет кто, как реализовать подобное для Sound FX?
Перед проигрыванием Sound FX - убавление громкости играющей деки, после проигранного Sound FX, возвращение громкости обратно. Пытался вставить из **********, работает только изначальное снижение громкости, но как только запускается наложение Sound FX (код ниже), то громкость резко возвращается на исходную,
То есть по сути, не выходит нормально сделать тайм ожидания, для возвращения громкости.
Исходное
  1. var Song : TSongInfo;
  2. var P : TPlayer;
  3. PAL.Loop := True;
  4. PAL.WaitForTime('+00:05:00');
  5. P := SoundFX;
  6. if P <> nil then
  7. begin
  8. Song := CAT['Sound FX (All)'].ChooseSong(smRandom,NoRules);
  9. if Song <> nil then
  10. begin
  11. P.QueueSong(Song); //
  12. P.Play;
  13. end;
  14. end;


То, что пытался сляпать (ибо не варю пока в pal)
  1. var Song : TSongInfo;
  2. var P : TPlayer;
  3. var i : integer;
  4. PAL.Loop := True;
  5. i := ActivePlayer.GetVolume;
  6. PAL.WaitForTime('+00:05:00');
  7. ActivePlayer.Volume := i - 40;
  8. ActivePlayer.Volume := i - 80;
  9. ActivePlayer.Volume := i - 120;
  10. ActivePlayer.Volume := i - 160;
  11. P := SoundFX;
  12. if P <> nil then
  13. begin
  14. Song := CAT['Sound FX (All)'].ChooseSong(smRandom,NoRules);
  15. if Song <> nil then
  16. begin
  17. PAL.WaitForTime('+00:00:10');
  18. ActivePlayer.Volume := i - 160;
  19. ActivePlayer.Volume := i - 120;
  20. ActivePlayer.Volume := i - 80;
  21. ActivePlayer.Volume := i - 40;
  22. ActivePlayer.Volume := i;
  23. P.QueueSong(Song);
  24. P.Play;
  25. end;
  26. end;

Как и куда только не вставлял PAL.WaitForTime с возвратом громкости, но результата не удалось получить. Как только стартует наложение Sound FX, громкость просто резко возвращается.
Помогите подправить в работоспособный вариант... (может уже было решение где-то этой проблемы, не удалось найти)

0
410
Евгений @Drakkar
JamStyle пишет:

LAZ2735 пишет:

Нашёл скрипт времени с новостями (или тем что вам захочется)


Спасибо за скрипт,давно искал...:)

Опишите пожалуйста подробнее, что это за СКРИПТ ВРЕМЕНИ С НОВОСТЯМИ? Как он применяется и для чего он нужен.

0
7094
Dim @Render
**********. Помогите, ребятушки.

0
1572
KyPIIaToB @KyPIIaToB
Render пишет:

**********. Помогите, ребятушки.

Для тех кто в танке, громкость для активного плеера ActivePlayer.Volume и не каким макаром не влияет на SoundFX
Соответственно меняй ActivePlayer на SoundFX, хоть немного думай.

Отредактировано KyPIIaToB - 10.02.2012
0
7094
Dim @Render
KyPIIaToB пишет:

Render пишет:

**********. Помогите, ребятушки.

Для тех кто в танке, громкость для активного плеера ActivePlayer.Volume и не каким макаром не влияет на SoundFX
Соответственно меняй ActivePlayer на SoundFX, хоть немного думай.

Видимо не совсем правильно объяснил, мне и не нужно влиять на громкость SoundFX.
Нужно всего лишь перед запуском звука из SoundFX, снижать громкость ActivePlayer, во время выполнения SoundFX (наложения), громкость ActivePlayer - всё так же должна оставаться на сниженном уровне, то есть некий timewait, пока проигрывается звук SoundFX и затем после окончания некого timwait равного к примеру 5 секундам, возвращение громкости ActivePlayer в предыдущее положение.
Повторюсь, начало - работает, как нужно. То есть громкость снижается на ActivePlayer перед запуском SoundFX, но вот дальше...
Как только стартует наложение звука, громкость резко возвращается назад и как сделать, чтобы даже во время наложения, бегунок громкости на ActivePlayer оставался на том же месте и ждал своего "прихода", мне не известно.

Если совсем на простом языке, то:
Играет трек.
В какой-то момент, громкость трека уменьшается где-то на 50%
Сверху накладывается какой-то звуковой эффект (причём громкость трека всё так же 50%)
По окончании наложения, возврат громкости трека на предыдущее значение.

Фуф. Вроде так :|

0
888
Falcon @Falcon
if Song <> nil then
begin
P.QueueSong(Song);
P.Play;
PAL.WaitForTime('+00:00:10');
ActivePlayer.Volume := i - 160;
ActivePlayer.Volume := i - 120;
ActivePlayer.Volume := i - 80;
ActivePlayer.Volume := i - 40;
ActivePlayer.Volume := i;
end;

0
7094
Dim @Render
Falcon, спасибо, но немного не то, так тоже пробывал уже.
KyPIIaToB, тоже спасибо за направление почти на путь истинный.
В итоге удалось достичь результата таким безобразием. Может кому-то пригодится.
  1. var Song : TSongInfo;
  2. var P : TPlayer;
  3. var i : integer;
  4. PAL.Loop := True;
  5. i := ActivePlayer.GetVolume;
  6. PAL.Loop := True;
  7. PAL.WaitForTime('+00:05:59');
  8. ActivePlayer.Volume := i - 20;
  9. ActivePlayer.Volume := i - 40;
  10. ActivePlayer.Volume := i - 60;
  11. ActivePlayer.Volume := i - 70;
  12. P := SoundFX;
  13. if P <> nil then
  14. begin
  15. Song := CAT['Sound FX (All)'].ChooseSong(smRandom,NoRules);
  16. if Song <> nil then
  17. begin
  18. P.QueueSong(Song); //
  19. P.Play;
  20. end;
  21. end;
  22. PAL.WaitForTime('+00:00:05');
  23. ActivePlayer.Volume := i

0
1572
KyPIIaToB @KyPIIaToB
Обнаружил прикольный скрипт, который озвучивает название трека с помощью ranslate.google.com
Видео примера можно глянуть тут **********

Создаем категорию nu , туда помещаем c:\test\nu.mp3
Ну это как пример конечно же

  1. PAL.Loop := True ;
  2. var verzoek, song : TSongInfo;
  3. var map, almost, ready : string ;
  4. Song := ActivePlayer.GetSongInfo;
  5. if (Song['songtype'] = 'J') then
  6. begin
  7. PAL.WaitForTime('+00:00:10');
  8. end
  9. else
  10. Song.Free;
  11. Song := ActivePlayer.GetSongInfo;
  12. map := 'c:\test\nu.mp3' ;
  13. verzoek := CAT['nu'].ChooseSong(smRandom, NoRules) ;
  14. almost := 'Now Playing.'+Song['artist']+'. with.'+Song['title']+'.' ;
  15. ready := URLEncode(almost) ;
  16. WebToFile(map,'http://translate.google.com/translate_tts?tl=en&q='+ready) ;
  17. Aux2.QueueSong(verzoek);
  18. Aux2.Play;
  19. PAL.WaitForPlayCount(1) ;


Источник **********

0
2
aeroman @aeroman
Я совсем новичок в етом деле так что прошу строго не судить. Скажите как PAL скриптом сохранить в файл содержимое Queue???
И просветите меня, есть ли какая-нибуть документация по PAL скриптам???

0
6245
0
2
aeroman @aeroman
tarasian666 пишет:

**********

Спасибо.
А по русски нет ничего подобного??

0





Согласие на обработку данных на нашем сайте

Продолжая просматривать страницу, вы соглашаетесь с использованием файлов «Cookie» и с Политикой конфиденциальности «Privacy».
Наверху или внизу страницы вы можете изменить валюту и язык по умолчанию. Английская версия сайта ещё находится в доработке и доступна не полностью.