Для реализации видео комнаты с указанными требованиями можно использовать технологию WebRTC в сочетании с другими инструментами. Вот возможный подход:
1. Начните с использования библиотеки WebRTC, такой как SimpleWebRTC или Socket.io, для установления соединения между пользователями.
2. Для управления аудио и видео участников, вы можете использовать флаги или параметры, чтобы определить, когда активировать или деактивировать потоки медиа. Например, вы можете создать кнопки "включить/выключить" для каждого участника в интерфейсе комнаты.
3. Для прослушивания аудио и видео других участников, каждый участник может подписаться на соответствующие потоки медиа, которые приходят от других участников.
4. Чтобы все участники могли управлять своими потоками медиа, вы можете использовать функционал WebRTC для отправки сигналов или сообщений между участниками о необходимости включить или выключить свои потоки медиа.
Если у вас возникли трудности с peerjs, попробуйте альтернативные библиотеки или инструменты для работы с WebRTC. Также обратитесь к документации WebRTC и примерам кода для получения более подробной информации о том, как реализовать вашу видео комнату с заданными требованиями.