Audio Rooms

Build Clubhouse-style audio rooms with multiple speakers and listeners using ConoStreamAudioHelper.

Room Structure

┌────────────────────────────────────┐
│           AUDIO ROOM               │
├────────────────────────────────────┤
│  🎙️ HOST        🎙️ CO-HOST 1      │
│                 🎙️ CO-HOST 2      │
├────────────────────────────────────┤
│  👤 👤 👤 👤 👤 AUDIENCE 👤 👤 👤  │
└────────────────────────────────────┘

Initialize Audio Helper

ConoStreamManager manager = getConoStreamManager();
ConoStreamAudioHelper audioHelper = new ConoStreamAudioHelper(manager, this);

Host: Start Room

// Host joins and starts publishing
audioHelper.joinAsHost(serverUrl, token, channelName);

// Enable speaker output
manager.configureAudioForSpeaker();

Audience: Join Room

// Audience joins (listen only)
audioHelper.joinAsAudience(serverUrl, token, channelName);

Co-host: Upgrade from Audience

// When approved by host
audioHelper.upgradeToCoHost();

// Later, step down
audioHelper.downgradeToAudience();

Seat Management (App-Level)

// Your app manages seat logic
public void onSeatClicked(int seatNumber) {
    if (isSeatEmpty(seatNumber)) {
        // Request to become co-host
        sendCoHostRequest(seatNumber);
    }
}

public void onCoHostApproved() {
    audioHelper.upgradeToCoHost();
    updateSeatUI();
}

Leave Room

audioHelper.leaveRoom();
ℹ️

Seat management, request/approval flow, and UI are handled by your app. ConoStream handles the audio streaming.