Accessing the native Player instance
When you instantiate a player with usePlayer
or new Player()
from javascript, you are actually either creating a new Player
instance on the native side (see SDKs docs for more info), or referencing an existing one.
This means that Player
instances with the same nativeId
in different parts of the code are referencing the same in-memory instance internally.
Example
Both components in the example below are referencing the same native Player
, indexed as my-player
. And even though each <PlayerView />
creates a different View internally, the underlying Player instance remains the same. It just gets attached to a different view.
// Using `usePlayer`
export const CompA = () => {
// Same `player` as in `CompB`.
const player = usePlayer({
nativeId: 'my-player',
});
return <PlayerView player={player} />;
};
// Using `new Player()`
export const CompB = () => {
// Same `player` as in `CompA`.
const player = useRef(
new Player({
nativeId: 'my-player',
})
);
return <PlayerView player={player.current} />;
};
Updated about 1 year ago