Skip to main content

Interface: NativeRemotePlayback

Defined in: packages/media-session/src/specs/media-session.nitro.ts:796

"Playback is coming out of some other device right now, and here is that device's volume." See RnMediaMediaSession.setRemotePlayback.

Deliberately backend-agnostic — no cast vocabulary anywhere. A Cast receiver, a UPnP renderer, a proprietary multi-room protocol and a remote-controlled amplifier are all the same thing to a media session: audio the phone is not producing, whose loudness the phone's stream volume must therefore stop pretending to control.

Properties

holdLocalAudioSlot

holdLocalAudioSlot: boolean;

Defined in: packages/media-session/src/specs/media-session.nitro.ts:839

Android only: hold a silent local AudioTrack while this remote playback is published, so the app's uid stays the platform's "last played locally" one and keeps the hardware volume keys with the screen off.

Opt-in because it holds a real audio output open for the whole remote session. Normalised from the public API's optional field, so this is always present. See RemotePlayback.holdLocalAudioSlot.


muted

muted: boolean;

Defined in: packages/media-session/src/specs/media-session.nitro.ts:808

Whether the remote device is muted.


routingControllerId?

optional routingControllerId?: string;

Defined in: packages/media-session/src/specs/media-session.nitro.ts:829

Android only: the MediaRouter2 routing-controller id of the route the audio is on, when the backend knows it.

Passed to DeviceInfo.Builder.setRoutingControllerId, which is how the system output switcher ties the volume slider it draws to the route that is actually playing. Omit when unknown — it is a refinement, not a requirement.


steps

steps: number;

Defined in: packages/media-session/src/specs/media-session.nitro.ts:817

How many discrete notches the volume rocker moves through from silent to full — the granularity of one key press.

Android needs a concrete integer range: DeviceInfo.Builder.setMaxVolume plus an int deviceVolume, which is what the platform's VolumeProvider reports and what one onAdjustVolume call moves by exactly 1.


volume

volume: number;

Defined in: packages/media-session/src/specs/media-session.nitro.ts:806

Current volume of the remote device, 0..1.

Normalised rather than expressed in the platform's integer steps because 0..1 is the vocabulary every remote backend already speaks (Cast's setVolume, UPnP's percentage) and the one the app's own slider uses. The quantisation into steps is this package's job, not the app's — see steps.


volumeControl

volumeControl: RemoteVolumeControl;

Defined in: packages/media-session/src/specs/media-session.nitro.ts:819

See RemoteVolumeControl.