0

streamer.py

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」を再生するとすぐに、プレーヤーが停止し、再生ボタンをもう一度押す必要があります。プレーヤーを停止せずにメディアを切り替える方法はありますか?

4

1 に答える 1

1

序文: 私はストリーミングの専門家ではありません。libvlc の使い方を調べて学んだことはすべて私が知っていることです。

1 つのメディアを停止してから次のメディアを開始するまでの間に、データのストリームが物理的に終了し、再び開始されます。のように、何もブロードキャストされていない短い期間があるため、プレーヤーは停止します。理論的には、エンコーディングとコンテナー形式が同じであれば (2 つのストリームと同様)、新しいストリームを前のストリームに追加できます。ただし、libvlc のバインディングはこれをサポートしていないと思います。

したがって、ストリームが終了したときに定期的にストリームへの再接続を試みるクライアントを作成するのが最善の策だと思います。

于 2013-06-05T03:06:59.093 に答える