2013-08-06 48 views
4

我有一個Liquidsoap很奇怪的問題。我有以下播放列表:Liquidsoap不會重新加載播放列表文件

myplaylist = playlist(mode="normal",playlist_file,reload_mode="rounds",reload=1) 

myplaylist = on_metadata(apply_metadata,myplaylist) 

其中apply_metadata調用一個python腳本調用時會立即更新播放列表,但有時Liquidsoap繼續播放舊的播放列表加載後,即使apply_metadata程序調用。

在此先感謝您的幫助。

的Liquidsoap腳本的全部代碼:

# This function is called when 
# a new metadata block is passed in 
# the stream. 
def apply_metadata(m) = 
    title = m["filename"] 
    artist = m["artist"] 
    print("Now playing: #{title} by #{artist}") 

    filename = string.split(separator="/",title) # rozdelime cestu po lomitkach 
    filename = list.nth(list.rev(filename),0) # vezmeme meno suboru 
    filename = list.nth(string.split(separator="\.",filename),0) # odpojime koncovku .mp3 

    command = "python3.3 feedback.py "^filename 
    system(command) 

end 

#!/usr/bin/liquidsoap 
# Log dir 
set("log.file.path","/tmp/basic-radio.log") 

#tidy up before playing playlist 
playlist_file = "playlist.m3u" 
system("python3.3 feedback.py -init") 


# Music 
myplaylist = playlist(mode="normal",playlist_file,reload_mode="rounds",reload=1) 

myplaylist = on_metadata(apply_metadata,myplaylist) 

# Stream it out 
output.icecast(%mp3, host = "localhost", port = 8080, password = "baldur", mount = "stream", myplaylist, fallible=true) 

回答

3

我終於找到the solution asking in the Liquidsoap's mailing list

第一,雖然這使我想到的是,你也許在某種程度上使用播放列表()這不是想要..

你有沒有關於使用request.dynamic?此操作員可讓您完全控制下一首正在播放的歌曲,並且可以用您選擇的任何語言編寫下一首曲目回調,這也使得更方便。

祝您好運!

羅曼

0

你也可以使用

myplaylist = playlist(mode="normal",playlist_file,reload_mode="watch") 

這會盡快檢測到任何變化重新加載播放列表。

相關問題