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

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

 

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

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

radio.skip
Done
END

но при этом поток прирывается, в логах:

2012/06/22 14:40:15 [radio:3] Performing user-requested skip
2012/06/22 14:40:15 [request.dynamic_3938:3] Finished with "/home/user/music/Fifth/Heaven Shall Burn - The Weapon They Fear.mp3".
2012/06/22 14:40:15 [radio:3] Source failed (no more tracks) stopping output...
2012/06/22 14:40:15 [radio:3] Closing connection...
2012/06/22 14:40:15 [decoder:3] Method "MP3" accepted "/home/user/music/Limp bizkit/Greatest_Hitz 2005/15-limp_bizkit-why.mp3".
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).
2012/06/22 14:40:15 [radio:3] Connecting mount radio for source@localhost...
2012/06/22 14:40:15 [radio:2] Connection failed: 403, Mountpoint in use (HTTP/1.0)
2012/06/22 14:40:15 [radio:3] Will try again in 3.00 sec.
2012/06/22 14:40:15 [fallback_3942:3] Switch to src_3940.
2012/06/22 14:40:19 [radio:3] Connecting mount radio for source@localhost...
2012/06/22 14:40:19 [radio:3] Connection setup was successful.


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

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

Сам скрипт радио

#!/usr/bin/liquidsoap

set("init.daemon", true)
set("init.daemon.pidfile.path", "/var/run/liquidsoap/mysite.pid")

set("log.file", true)
set("log.file.path", "/var/log/liquidsoap/mysite.log")

set("log.stdout",false)

set("server.telnet", true)
set("server.telnet.bind_addr", "127.0.0.1")
set("server.telnet.port",1234)

def get_next_song() =
result =
list.hd(
get_process_lines("php /usr/share/liquidsoap/mysite/scripts/next.php"))

request.create(result)
end

def notify_current_song(metadata) =
title = metadata["title"]
artist = metadata["artist"]

system("php /usr/share/liquidsoap/mysite/scripts/current_song.php -a #{quote(artist)} -t #{quote(title)}")
end

radio = request.dynamic(get_next_song)
radio = normalize(radio)

output.icecast(%mp3, host="localhost", fallible=true,
port=8000, password="UzOk6NVm9c7lBzj4rybG", mount="radio",
url="http://radio.mysite.ru", name="mysite.ru", description="mysite",
radio)