2013-05-14 49 views
0

streamer.py在使用libVLC進行流式傳輸時切換媒體。

import vlC# libVLC 
import time 

class Streamer(): 
    def __init__(self): 
     self.Instance = vlc.Instance() 
     sout = "#transcode{acodec=mp3,ab=128,channels=2,samplerate=44100}:http{dst=:8090/streamer.mp3}" 
     self.media_files = ["file.mp3", "file2.mp3"] 
     self.Instance.vlm_add_broadcast("0", self.media_files[0], sout, 0, None, True, False) 
     self.Instance.vlm_add_broadcast("1", self.media_files[1], sout, 0, None, True, False) 
     self.Instance.vlm_play_media("0") 
     time.sleep(10) 
     self.Instance.vlm_stop_media("0") 
     self.Instance.vlm_play_media("1") 
     time.sleep(10) 

rs = RasStreamer() 

球員:

我在客戶端使用Jplayer(demo-8)。

問題:

當我停止媒體「0」和播放媒體「1」,停止我的球員,我必須再次按下播放按鈕。有沒有辦法在不停止播放器的情況下切換媒體?

回答

1

前言:我不是流媒體專家;我從研究如何使用libvlc中學到的所有知識。

在停止一個媒體和開始下一個媒體之間,數據流在物理上結束並重新開始。如同,在沒有什麼廣播的情況下會有很短的時間,所以玩家停下來。理論上,您可以將新流附加到前一個流,只要它們具有相同的編碼和容器格式(如同您的兩個流一樣)。但是,我不認爲libvlc的綁定支持這一點。

所以我認爲你最好的選擇是在流結束時定期嘗試重新連接流。