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

Liquidsoap (request.dynamic) source.skip останавливает поток

 

1
Morfi @Morfi
Всем привет

Возникла такая проблема странная проблема
Есть радио в котором каждая следующая песня забирается request.dynamic (вызывается внешний скрипт который отдает путь к одному файлу)
Подключаюсь telnet-ом, пытаюсь выполнить компанду radio.skip
  1.  
  2. radio.skip
  3. Done
  4. END

но при этом поток прирывается, в логах:
  1.  
  2. 2012/06/22 14:40:15 [radio:3] Performing user-requested skip
  3. 2012/06/22 14:40:15 [request.dynamic_3938:3] Finished with "/home/user/music/Fifth/Heaven Shall Burn - The Weapon They Fear.mp3".
  4. 2012/06/22 14:40:15 [radio:3] Source failed (no more tracks) stopping output...
  5. 2012/06/22 14:40:15 [radio:3] Closing connection...
  6. 2012/06/22 14:40:15 [decoder:3] Method "MP3" accepted "/home/user/music/Limp bizkit/Greatest_Hitz 2005/15-limp_bizkit-why.mp3".
  7. 2012/06/22 14:40:15 [request.dynamic_3938:3] Prepared "/home/user/music/Limp bizkit/Greatest_Hitz 2005/15-limp_bizkit-why.mp3" (RID 2).
  8. 2012/06/22 14:40:15 [radio:3] Connecting mount radio for source@localhost...
  9. 2012/06/22 14:40:15 [radio:2] Connection failed: 403, Mountpoint in use (HTTP/1.0)
  10. 2012/06/22 14:40:15 [radio:3] Will try again in 3.00 sec.
  11. 2012/06/22 14:40:15 [fallback_3942:3] Switch to src_3940.
  12. 2012/06/22 14:40:19 [radio:3] Connecting mount radio for source@localhost...
  13. 2012/06/22 14:40:19 [radio:3] Connection setup was successful.


и поток снова работает, но клиентам надо снова конектиться.

Подксажите как правильно сделать что бы можно было пропускать текущую песню, и начинать следющую? (что бы вызывался тот же скрипт)

Сам скрипт радио
  1.  
  2. #!/usr/bin/liquidsoap
  3. set("init.daemon", true)
  4. set("init.daemon.pidfile.path", "/var/run/liquidsoap/mysite.pid")
  5. set("log.file", true)
  6. set("log.file.path", "/var/log/liquidsoap/mysite.log")
  7. set("log.stdout",false)
  8. set("server.telnet", true)
  9. set("server.telnet.bind_addr", "127.0.0.1")
  10. set("server.telnet.port",1234)
  11. def get_next_song() =
  12. result =
  13. list.hd(
  14. get_process_lines("php /usr/share/liquidsoap/mysite/scripts/next.php"))
  15. request.create(result)
  16. end
  17. def notify_current_song(metadata) =
  18. title = metadata["title"]
  19. artist = metadata["artist"]
  20. system("php /usr/share/liquidsoap/mysite/scripts/current_song.php -a #{quote(artist)} -t #{quote(title)}")
  21. end
  22. radio = request.dynamic(get_next_song)
  23. radio = normalize(radio)
  24. output.icecast(%mp3, host="localhost", fallible=true,
  25. port=8000, password="UzOk6NVm9c7lBzj4rybG", mount="radio",
  26. url="http://radio.mysite.ru", name="mysite.ru", description="mysite",
  27. radio)

0