RTCChannel is returned by RTCEngine.join(...), and all of its methods act only on the channel session bound to that handle. The first join returns the default channel handle; the flat channel APIs retained on RTCEngine operate on the same session as this handle.
A non-null handle only means the SDK accepted the join request. Call publishing, subscription, and info queries after RTCClientEvent.onJoinSucceed(...).
Identity and lifecycle
channelId
leave()
resume()
Listeners
setRtcClientEvent: replaces or unbinds the channel control listener after the join succeeds. The initial listener must be passed tojoin(...).setRtcMediaEvent: replaces or unbinds the media listener for the current channel; you can set it afterjoin(...)returns the handle.
Channel, user, and track queries
null and list methods return an empty list; isAudience() returns false when not joined.
Publish local tracks
RTCEngine, but publishing state is isolated per channel. When an audience user calls a publishing API, it fails with FORBIDDEN_FOR_AUDIENCE. enableLocalAudio only toggles audio already published in the current channel with low latency; it doesn’t close microphone capture or remove the remote track.
Subscribe to remote tracks
getRemoteStreamTrack and subscribeRemoteStream work only with the Wangsu media streaming engine; other engines return STREAM_VENDOR_NOT_SUPPORTED or an empty result.
Statistics and ASR
getMetric() returns the most recent thread-safe snapshot and doesn’t actively trigger underlying statistics collection.
For the full multi-channel integration flow, see Multi-channel.