评测 - 为您的社区添加 Discord 风格的语音房间 🎙

这是仅限企业版使用,还是也可以在专业版上运行?

Discourse 没有“专业”版计划吗? 是的,但由于这不是#官方版本,因此只能在最高级别的“企业”版计划上安装。

呃!居然有?!

来源:https://discourse.org/buy

1 个赞

我猜我从未将“Pro”与“专业”联系起来……

1 个赞

“Pro”不是“专业”(Professional)的缩写吗?

确实,但我原本以为“专业版”应该比“商务版”更高(所以叫 Pro?)

@Falco 我已经完成了集成,但我不得不从基本的 WebRTC 改为包含一个 SFU SDK,通过一个独立的 Docker 容器实现。此外,我还创建了一个独立于您标准侧边栏的界面,并加入了直播功能,以便在大型社区进行音频讨论时使用。

它可以从 Discourse 网页端或 Domniq - 一个 Discourse 原生 Android+iOS 应用预览 启动和停止,管理员控制和房间控制功能均已就绪。

我并没有专注于类似 Discord 的聊天风格,而是更多地参考了您的插件核心,打造了类似 Clubhouse X/Spaces 的体验,同时保留了您的署名。

4 个赞

我添加了视频功能,现在屏幕共享和网络摄像头视频均可在插件中的站点设置下启用。

17 个赞

@Falco 我们多久可以试用托管论坛?这太棒了,只是现在无法试用 :slight_smile:

嗯,既然这不是官方支持的,你需要企业版或者自行托管。

似乎存在与在 ESR 上运行的实例的兼容性问题,插件无法加载,并报错:

Uncaught (in promise) Error: Could not find module discourse/blocks imported from discourse/plugins/resenha/discourse/components/resenha-anon-rooms-block
f loader.js:247
f loader.js:258
findDeps loader.js:168
f loader.js:262
findDeps loader.js:168
f loader.js:262
requireModule loader.js:24
iI app.js:228
iN app.js:251
start app.js:210
start app.js:225
start-app.js:19
loader.js:247:1

这会导致 Horizon 主题中的主题列表布局错乱。

在 ESR 版 Discourse 上使用实验性插件并不是一个明智的策略。

如果你想使用这个插件,请坚持使用最新稳定版。

5 个赞

我希望有像 d-compat 这样的机制,以确保在这些情况下旧版本的 Discourse 能够保持兼容!:sad_but_relieved_face:

对于此实例,升级到最新版本不是一个选项,所以我想插件只能保持禁用状态了。

2 个赞

对于官方的生产环境插件,我们确实有这些机制,但要求我们发布的每个实验性功能都做到这一点是不合理的。

2 个赞

已记录 :+1:

(二十个字符)

今天和 @Falco 还有几位其他朋友用这个插件快速聊了一会儿,挺有意思的!

我正和 @markvanlan 聊别的事情,注意到他头像旁边有个麦克风图标。于是决定跳进 Watercooler 频道聊了一会儿,看到了几张平时不太常见到的面孔。

Falco,很高兴看到你们在这里的所作所为。

4 个赞

我们恰好在过去两周对这个插件进行了一次全员内部会议,以下是发生的情况:

LLM 总结过去两周在 Resenha 的情况

:sparkles: 功能

  • 持久化房间聊天 — 将语音房间链接到 Discourse 聊天频道;每次会话都会打开一个完整的线程,支持反应、编辑和上传。在可配置的空闲超时后,会滚动到新的线程。
  • 屏幕共享音频 — 选项卡和系统音频现在通过专用轨道与屏幕共享一起传输,与麦克风分开。尊重每个用户的音量/静音/屏蔽设置。
  • 语音设置模态框 — 选择输入/输出设备,查看实时麦克风电平表,并设置噪声门阈值。偏好设置按设备持久化,并可在通话中应用而无需重新协商。
  • 可调整大小的停靠小部件 — 通过左上角句柄拖动调整大小,锚定在右下角,大小持久化。新的额外最小化状态仅显示“展开”和“离开”按钮。视频流在小部件模式下正常工作。

:artist_palette: 用户体验

  • 侧边栏参与者状态图标(静音/屏蔽/屏幕共享/摄像头/PTT)现在全部出现在右侧边缘;说话波形动画覆盖在头像上。
  • 语音房间现在在全屏聊天侧边栏中可见。
  • prioritize_username_in_ux 站点设置在视频磁贴和匿名房间块中得到尊重。
  • 修复了移动菜单的小部件 z-index 问题;恢复了 SE 调整大小句柄;停靠按钮获得了正确的 ariaLabel

:bug: 修复

  • 退出全屏后,视频网格布局卡在 fullscreen 尺寸。
  • 非参与者用户的侧边栏参与者计数漂移(广播目标 + Redis + 客户端清理)。
  • Android 上的音频提示损坏(AudioContext 现在在播放前恢复;共享单例避免上下文限制)。
  • 对等方在初始握手后开始发布时,远程视频未出现。
  • 过期的参与者广播目标。

如果有人在使用这个插件,我很乐意听取关于最近更改的反馈。

11 个赞

这个功能提升很棒,能否将其应用到事件插件上?能否建立一个在事件主题上渲染的钩子?这样可以在侧边栏之外重定向到完整视图。

我注意到许多论坛没有启用 Discourse 的侧边栏,而是使用头部下拉菜单,这会对 Resenha 产生什么影响?是否有计划将其作为独立的聊天弹出界面?类似于目前存在的频道和 DMs 停靠栏。

2 个赞

这可能会在未来的计划中,但目前我们没有任何类似的计划。也许当事件的地点 URL 中包含 Resenha 房间时可以实现这一点。在活动开始前五分钟,我们会触发应用内通知、推送通知和电子邮件,点击后会将用户直接引导至 /resenha/r/#{room.slug},让他们直接进入事件房间。

老实说,我不知道,这在我的优先级列表中排名很靠后 :laughing:

我们最近添加了这两个功能,因此你有弹出窗口小部件:

以及完整页面视图:

因此,从技术上讲,只要你将房间链接放在用户能够找到的地方,就可以使用它。

4 个赞

刚看了演示,这是一个巨大的飞跃,真是令人印象深刻的工作。从我之前分享的帖子来看,我选择了 LiveKit SDK 来处理大型群组的音频,并通过一个由 egress 驱动的广播页面流式传输到 YouTube。你新的房间全屏视图看起来更稳健,我会深入了解一下,看看当前的更新是否能在 resenha 期间满足我的需求。