bitmovin-player-react-native
Version:
Official React Native bindings for Bitmovin's mobile Player SDKs.
54 lines • 2.19 kB
JavaScript
import { Platform } from 'react-native';
import MediaControlsModule from './modules/MediaControlsModule';
/**
* Provides control for the Player's media controls integration.
*
* Accessible through {@link Player.mediaControls}.
*
* @platform iOS, tvOS
*/
export class MediaControlsApi {
/**
* The native player id that this media controls api is attached to.
*/
nativeId;
constructor(playerId) {
this.nativeId = playerId;
}
/**
* Indicates whether the Player publishes media control information and registers media command handlers.
*
* The initial value is configured via {@link MediaControlConfig.isEnabled}.
* Disabling this integration clears the Player's media controls metadata and removes the Player's command handlers.
*
* ## Limitations
* - Google IMA SDK instances that were already created can still publish their own media control information.
* - This API only controls the Bitmovin Player media controls integration.
* It does not manage media controls, sessions, command handlers, or metadata
* created directly by the app or by other libraries.
*
* @platform iOS, tvOS
* @returns `true` if the media controls integration is enabled, `false` otherwise. Always `false` on Android.
*/
isEnabled = async () => {
if (Platform.OS === 'android') {
console.warn(`[Player ${this.nativeId}] Runtime mediaControls APIs are not implemented on Android yet.`);
return false;
}
return (await MediaControlsModule?.isEnabled(this.nativeId)) ?? false;
};
/**
* Enables or disables the Player's media controls integration at runtime.
*
* @platform iOS, tvOS
* @param enabled Whether the media controls integration should be enabled.
*/
setEnabled = async (enabled) => {
if (Platform.OS === 'android') {
console.warn(`[Player ${this.nativeId}] Runtime mediaControls APIs are not implemented on Android yet.`);
return;
}
return MediaControlsModule?.setEnabled(this.nativeId, enabled);
};
}
//# sourceMappingURL=mediaControlsApi.js.map