1
使用django按鈕,我需要啓動多個音樂(隨機選擇)。django子流程p.wait()不返回網頁
在我的models.py,我有兩個功能「playmusic」和「playmusicrandom」:
def playmusic(self, music):
if self.isStarted():
self.stop()
command = ("sudo /usr/bin/mplayer "+music.path)
p = subprocess.Popen(command+str(music.path), shell=True)
p.wait()
def playmusicrandom(request):
conn = sqlite3.connect(settings.DATABASES['default']['NAME'])
cur = conn.cursor()
cur.execute("SELECT id FROM webgui_music")
list_id = [row[0] for row in cur.fetchall()]
### Get three IDs randomly from the list ###
selected_ids = random.sample(list_id, 3)
for i in (selected_ids):
music = Music.objects.get(id=i)
player.playmusic(music)
有了這個代碼,三級的音樂播放(一個接一個),但網頁是剛「Loading ...」在執行過程中...
有沒有一種方法可以在循環期間向用戶顯示刷新的網頁? 謝謝。
太棒了!謝謝,它有效。只是,我的硬件在'cat/proc/cpuinfo'(樹莓派)中列出了一個處理器。哪種方法更適合? (線程,多進程等)。 – Isador 2014-10-18 13:41:08
聽起來像線程是給你的。 – GreenAsJade 2014-10-18 23:28:24
很抱歉發佈了一個關於此解決方案的問題,它可以工作,但是我的停止功能僅停止當前的mplayer進程(pkill),並且我會殺死整個線程,但是我已經看到這不是真的有可能......?你有好主意嗎 ? – Isador 2014-10-25 08:51:01