2013-05-14 47 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的绑定支持这一点。

所以我认为你最好的选择是在流结束时定期尝试重新连接流。