2016-07-22 5 views
-1

私はPython3で音楽ストリーミングサービスを作成しています。これはsocketserverモジュールを使って書かれています。私は現在の曲を保存するサーバと、mp3データを1024ミリ秒ごとに(ビットレートに基づいて)送信するハンドラを持っています。Pythonミュージックストリーム - すべてのリスナー同じコンテンツ

これは完全に1つのクライアントで動作しますが、2 /複数のクライアントでは、クライアントが接続するとそのクライアントの先頭から曲を再生するため、他のクライアントはすでに存在する可能性があるため、曲の最後に

ラジオ局のように、どうすればこの問題を解決できますか?私はサーバーレベルでソングの現在の位置を保存することを考えましたが、私はすでにハンドラでwhileループを使用しているので、現在の位置を変更し続けるためにはwhileループが必要です。 。

オプションをIcecastのをされていない使用して、私は何かを作りたいと思って自分

答えて

0

あなたは聞くと、彼はその内のすべてのクライアントに同じデータを送信するようにハンドラを変更したいすべてのクライアントを持つグローバルリストを作ることができますリスト。 は擬似コードでは、このようになります:私は助けることができる

clients = [] 
def add_client(client): 
    global clients 
    clients.append(client) 

def handler(): 
    # your code for timing 
    for client in clients: 
     sendData(client) 

希望を。良い一日を!

関連する問題