Tracks
Tracks are individual audio or video streams. They are published by participants and can be subscribed to by others in the room.
Track Types
| Type | Description | Source |
|---|---|---|
AudioTrack |
Audio stream | Microphone, music file |
VideoTrack |
Video stream | Camera, screen share |
DataTrack |
Arbitrary data | Messages, events |
Publishing Tracks
// Publish microphone audio
manager.publishMicrophone();
// Publish camera video
videoHelper.publishCamera(localVideoView);
Subscribing to Tracks
Remote tracks are automatically subscribed. Handle them in callbacks:
videoHelper.setEventCallback(new ConoStreamVideoEventCallback() {
@Override
public void onRemoteVideoTrackSubscribed(String id, VideoTrack track) {
// Attach to a renderer
track.addRenderer(remoteVideoView);
}
@Override
public void onRemoteAudioTrackSubscribed(String id) {
// Audio plays automatically
}
});
Track States
- Published - Track is being sent to server
- Subscribed - Receiving remote track
- Muted - Track temporarily disabled
- Ended - Track stopped/removed
Muting Tracks
// Mute audio (stops sending, doesn't unpublish)
manager.muteMicrophone(true);
// Disable video (stops camera capture)
videoHelper.enableCamera(false);
Video Track Rendering
// Add renderer to video track
videoTrack.addRenderer(textureViewRenderer);
// Remove renderer
videoTrack.removeRenderer(textureViewRenderer);
ℹ️
Audio tracks play automatically when subscribed. Video tracks must be attached to a renderer to be visible.