В эфире: голосовые и видеоканалы в стиле Discord, теперь в комплекте с Discourse 🎙

Я не ошибаюсь в памяти, просто я из старой школы :old_man:

Эта функция была добавлена всего 10 лет назад в Mumble 1.3, когда самому Mumble было уже более 10 лет.

Очень долгое время это была главная претензия к Mumble.

5 лайков

Я только что поиграл с этим, и это супер круто! Хотел оставить первичную обратную связь.

  • Громкость для шаринга экрана и речи:

Я попробовал это, но громкость шаринга экрана других участников не отображается отдельно от громкости их речи. Там есть только один общий слайдер для голоса и звука шаринга экрана. Я что-то упустил или неправильно понял? (Мой сценарий использования — возможность приглушать или уменьшать громкость игрового стрима кого-то, но при этом слышать, как он говорит.)

  • Небольшой баг: при редактировании комнаты (например, заглавная буква в названии комнаты), когда я возвращаюсь, чтобы отредактировать её снова, опция редактирования не появляется, пока я не обновлю всю страницу. Возможно, клиентский интерфейс «забывает», что у меня есть разрешения после применения изменений.
  • Я очень благодарен за всплывающее окно о конфиденциальности IP! Спасибо, что вы предвидели эту проблему :slight_smile:
  • На моей системе мой микрофон очень тихий и требует большого усиления. Это системная проблема на моей стороне, но в Mumble (и, я полагаю, в Discord, но прошло много времени, и я не помню) я могу применить много ручного усиления, чтобы преодолеть это. Я бы предложил, когда отключается автоматическое усиление, предоставить ручное колесо усиления с большим запасом (мой обычный фоновый шум составляет -48 дБ, а речь — около -30 дБ. В Audacity это было бы примерно усиление на 20 дБ, чтобы выйти в нормальный диапазон.)
  • Это не связано с Discourse, но имеет то же ограничение, что и все экраны шаринга webrtc на linux — а именно, нет шаринга аудио в Firefox, а Chrome поддерживает только шаринг аудио вкладки браузера. Так что, если я хочу стримить игру, я не могу стримить звук из игры на linux из-за ограничений браузера.
    • Одна хитрая обходная дорожка, которую я увидел в другом решении, — это просто предоставить адрес конечной точки, на который я мог бы указать в OBS. (Возможно, livekit уже поддерживает это, я ещё не настроил серверную часть livekit)
  • Я очень впечатлён функцией субтитров! У меня пока нет сценария использования для части с транскрипцией, но я определённо вижу, что это может быть полезно в деловой среде для ведения записей.
  • В настоящее время есть проблема с интерфейсом: посетители не знают, что в чат-комнатах есть люди, пока не прокрутят страницу вниз — возможно, очень далеко. В моей установке это более чем полная страница прокрутки из-за всех ссылок/категорий/тегов, которые у меня есть. Это особенно верно для мобильных устройств, которые вообще не показывают список пользователей чата, если они не нажимают на панель меню. Я бы рекомендовал какой-то кнопкой в правом верхнем углу, когда чат активен (пример из mumble). Видеть там (1) или больше — это всегда мой главный сигнал, что кто-то хочет, чтобы я зашёл в чат!

В любом случае, отличная работа над этим — это огромный шаг вперёд для Discourse, и я очень этим взволнован! :rocket:

6 лайков

Получили много отличной обратной связи, просто хочу выделить один момент

Пока что это мой главный вызов, и он затрагивает все платформы, так как стриминг моих игровых сессий с разрешением 7680x2160@240Hz через браузер, не поддерживающий аппаратное кодирование, невозможен.

Поэтому я исследую возможность решения этой проблемы, а также функций вроде глобальной PTT (Push-to-Talk), с помощью нативного настольного приложения, которое позволит нам лучше обрабатывать такие интеграции.

6 лайков

Спасибо; нативное настольное приложение звучит интригующе, но, пожалуйста, также поддерживайте существующие открытые стандарты стриминга, ведь хотя бы в моей компании друзей у всех уже установлен OBS, они ему доверяют и знают, как его настроить. (Честно говоря, это чаще встречается среди геймеров, чем среди менее технически подкованных пользователей)

1 лайк

В каком-то смысле я с тобой согласен, то есть это не Zoom. Но я также позволяю себе немного не согласиться, потому что, к счастью, OBS — это стандарт, используемый во многих сферах!

1 лайк

Сегодня при пересборке возникла небольшая проблема, потому что я раньше тестировал плагин под названием ‘Resenha’. Кстати, я был очень расстроен, когда его переименовали в ‘Voice’.

Это помогло мне решить проблему:

2 лайка

Теперь о самом плагине. Я заметил, и, возможно, это просто моё впечатление из-за того, что я пересобрал проект после почти двух недель работы с более чем 300 коммитами, но что-то заставило меня стать видимым в канале #quem-está-online, когда я тестировал голосовой чат в своём инстансе, даже если переключатель был установлен в положение «Offline». Это ожидаемое поведение?

Это должно быть исправлено в ближайшее время: FIX: Do not overwrite permissions after editing - Pull Request #43496 - discourse/discourse - GitHub

3 лайка

Возможно ли добавить на нашу страницу «О сайте» (раздел «Активность сайта») информацию о (например) 5 голосовых чатах за последние 7 дней? Или сформулировать это как-то иначе?

Наша цель — показать как можно больше активности, чтобы привлечь новых участников.

4 лайка

Можно ли приглашать в голосовую комнату целые группы, а не отдельных пользователей? Я понимаю, что это может привести к путанице на странице участников, если нужно будет удалить человека, который всё ещё состоит в этой группе и т.д.

Мы планируем внедрить это в нескольких активных проектах, работающих с клиентами, но у нас 17 групп с совершенно разными людьми :sweat_smile:

Да, это в основном причина, по которой всё устроено именно так.

Если вы хотите ограничить доступ ко всей функции только членами этих 17 групп, это можно сделать через настройку сайта, но одноразовое приглашение привязано к конкретному пользователю (слишком легко превратить это в инструмент для спама), а членство в комнате также привязано к пользователю (синхронизация с группами может стать улучшением в будущем).

4 лайка

Полностью согласен. Похоже, что сделать это через API тоже невозможно :sadpanda:

Я чего-то не понимаю в методе с приглашением по ссылке? Я отправил ссылку на тестовый аккаунт, который входит в одобренные группы, но при попытке перейти по ней с тестовым пользователем получаю ошибку Oops! That page doesn’t exist or is private.

Обновление: Чёрт, даже если я пригласю этого пользователя и увижу голосовой канал в боковой панели, переход по ссылке всё равно ведёт на ту же страницу с ошибкой.

1 лайк

Мы уже обрабатываем часть этой логики добавления и удаления людей из каналов чата, если канал связан с приватной категорией.

Фалько, я не помню, есть ли у нас уже способ связать голосовой канал с каналом чата. Я знаю, что мы обсуждали это в прошлом в контексте личных сообщений (DM). Но, возможно, это может стать подходом и здесь.

В качестве альтернативы мы могли бы использовать тот же подход, что и для каналов чата, и позволить категориям выполнять роль слоя контроля доступа (хотя я знаю, что мы часто обсуждали возможность убрать этот слой посредничества и разрешить устанавливать доступ непосредственно на уровне канала).

  • создать приватную категорию
  • создать канал чата для этой категории
  • включить голос в этом канале чата (или также создать голосовой канал для категории)

Если вы также хотите ограничить доступ к этой функции в целом для набора групп, я думаю, что это всё равно потребует управления через настройки сайта. Возможно, рабочий процесс (workflow) мог бы помочь в автоматизации или проверке согласованности на этом уровне.

@martin, возможно, здесь есть пересечение с общим механизмом контроля доступа, над которым вы работаете.

Было бы полезно связаться с @awesomerobot, чтобы обсудить более широкое продвижение этой идеи в ближайшее время, чтобы мы могли подумать о том, как более последовательно применять этот аспект по всему приложению.

1 лайк

Странно, эти тестовые пользователи находятся в каком-то странном состоянии, например, с уровнем доверия, который не позволяет получить доступ?

Да, это есть в дорожной карте.

Точно не было препятствием для выпуска, и это такая запутанная часть приложения, что наши усилия лучше направить на то, чтобы правильно реализовать основу аудио и видео, но я буду работать над этим в ближайшие месяцы.

5 лайков

Ответил на dev, но новая система ACL должна отлично подойти для этого, в отличие от старой запутанной системы наследования разрешений по категориям :slight_smile:

2 лайка

Мне не кажется. Я просто поднял своего тестового пользователя до TL3, так что это точно не ограничение уровня доверия. Что-то не так с самим приглашением. Смотрите ниже, как оно ведёт себя при обычном доступе (ссылка работает одинаково, независимо от того, есть ли у моего пользователя доступ или нет).

К сожалению, эти группы работают только через личные сообщения, поэтому нет привязки к категории, на которую можно было бы положиться.

Я думаю, что достаточно будет поделиться ссылкой на приглашение в личных сообщениях, как только мы разберёмся, почему она не работает :sweat_smile:

1 лайк

хорошее предложение. Вот PR, который это добавит.

6 лайков

Я заметил, что каждый раз, когда я вхожу в голосовую комнату с типом комнаты «открытая», микрофон пользователя автоматически включается. То же самое происходит, когда спикер присоединяется к сцене в голосовой комнате. Не могли бы вы дать возможность администратору настраивать, должен ли микрофон включаться автоматически при входе?

1 лайк

Разве это не будет запутанно?

Стиль «рабочих» приложений для встреч, таких как Zoom, Teams и Meet, предполагает наличие такого механизма, когда количество участников превышает определённый порог. Однако в школах приложений, которые нам послужили источником вдохновения, — таких как TeamSpeak, Ventrillo, Mumble, Discord и других, — такого поведения никогда не было.

Мне кажется, что этот дополнительный шаг не имеет большого числа прецедентов и лишь усложняет пользовательский опыт для новичков.

2 лайка