forked from computertech/techdj
Switch listener streaming to MP3-only
This commit is contained in:
14
server.py
14
server.py
@@ -17,7 +17,6 @@ import downloader
|
||||
# Relay State
|
||||
broadcast_state = {
|
||||
'active': False,
|
||||
'mimeType': None,
|
||||
}
|
||||
listener_sids = set()
|
||||
dj_sids = set()
|
||||
@@ -339,12 +338,7 @@ def stop_broadcast_after_timeout():
|
||||
|
||||
@dj_socketio.on('start_broadcast')
|
||||
def dj_start(data=None):
|
||||
mime_type = None
|
||||
if isinstance(data, dict):
|
||||
mime_type = data.get('mimeType') or None
|
||||
|
||||
broadcast_state['active'] = True
|
||||
broadcast_state['mimeType'] = mime_type
|
||||
session['is_dj'] = True
|
||||
print("🎙️ Broadcast -> ACTIVE")
|
||||
|
||||
@@ -352,13 +346,10 @@ def dj_start(data=None):
|
||||
|
||||
listener_socketio.emit('broadcast_started', namespace='/')
|
||||
listener_socketio.emit('stream_status', {'active': True}, namespace='/')
|
||||
if mime_type:
|
||||
listener_socketio.emit('stream_mime', {'mimeType': mime_type}, namespace='/')
|
||||
|
||||
@dj_socketio.on('stop_broadcast')
|
||||
def dj_stop():
|
||||
broadcast_state['active'] = False
|
||||
broadcast_state['mimeType'] = None
|
||||
session['is_dj'] = False
|
||||
print("🛑 DJ stopped broadcasting")
|
||||
|
||||
@@ -369,9 +360,8 @@ def dj_stop():
|
||||
|
||||
@dj_socketio.on('audio_chunk')
|
||||
def dj_audio(data):
|
||||
# Relay audio chunk to all listeners immediately
|
||||
# MP3-only mode: do not relay raw chunks to listeners; feed transcoder only.
|
||||
if broadcast_state['active']:
|
||||
listener_socketio.emit('audio_data', data, namespace='/')
|
||||
# Ensure MP3 fallback transcoder is running (if ffmpeg is installed)
|
||||
if _ffmpeg_proc is None or _ffmpeg_proc.poll() is not None:
|
||||
_start_transcoder_if_needed()
|
||||
@@ -417,8 +407,6 @@ def listener_join():
|
||||
dj_socketio.emit('listener_count', {'count': count}, namespace='/')
|
||||
|
||||
emit('stream_status', {'active': broadcast_state['active']})
|
||||
if broadcast_state.get('mimeType'):
|
||||
emit('stream_mime', {'mimeType': broadcast_state['mimeType']})
|
||||
|
||||
@listener_socketio.on('get_listener_count')
|
||||
def listener_get_count():
|
||||
|
||||
Reference in New Issue
Block a user