【我在做什么操作】使用Android手机端投屏到电脑(win11专业版)
【我发现了什么】弹幕默认打开,APP端无法自由关闭电脑端的Macast上的弹幕。 导致部分视频不想看弹幕但是无法在Android手机端进行关闭。
【我期望实现的】支持手机APP端关闭弹幕和开启弹幕。
【代码尝试】
修改代码:
/Macast-plugins/tree/main/nirvana//nirvana.py
修改内容:
-
调整弹幕为默认关闭(在 update_play_state 函数中):
def update_play_state(self):
danmuku_open = False # 这里强制默认关闭
self.renderer.set_media_sub_show(danmuku_open)
cherrypy.engine.publish('nva-broadcast', 'OnDanmakuSwitch', {'open': danmuku_open})
# ... 后面保持不变
-
确保APP弹幕开关有效(在 cmd_from_client 函数中,约 865 行):
elif method == 'SwitchDanmaku':
self.send_res(counter)
# 获取开关参数
is_open = params.get('open', True)
# 兼容性判断:只有明确为字符串 'false' 或 布尔值 False 时才关闭
if is_open == 'false' or is_open is False:
show = False
else:
show = True
self.renderer.set_media_sub_show(show)
# 同时同步给协议层,防止状态冲突
self.protocol.set_state_display_subtitle(show)
【我在做什么操作】使用Android手机端投屏到电脑(win11专业版)
【我发现了什么】弹幕默认打开,APP端无法自由关闭电脑端的Macast上的弹幕。 导致部分视频不想看弹幕但是无法在Android手机端进行关闭。
【我期望实现的】支持手机APP端关闭弹幕和开启弹幕。
【代码尝试】
修改代码:
/Macast-plugins/tree/main/nirvana//nirvana.py
修改内容:
调整弹幕为默认关闭(在 update_play_state 函数中):
def update_play_state(self):
danmuku_open = False # 这里强制默认关闭
self.renderer.set_media_sub_show(danmuku_open)
cherrypy.engine.publish('nva-broadcast', 'OnDanmakuSwitch', {'open': danmuku_open})
# ... 后面保持不变
确保APP弹幕开关有效(在 cmd_from_client 函数中,约 865 行):
elif method == 'SwitchDanmaku':
self.send_res(counter)
# 获取开关参数
is_open = params.get('open', True)
# 兼容性判断:只有明确为字符串 'false' 或 布尔值 False 时才关闭
if is_open == 'false' or is_open is False:
show = False
else:
show = True