react-native-theoplayer
Version:
A THEOplayer video component for react-native.
51 lines (50 loc) • 1.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.THEOplayerNativeChromecast = void 0;
var _reactNativeTheoplayer = require("react-native-theoplayer");
var _reactNative = require("react-native");
const NativeCastModule = _reactNative.NativeModules.THEORCTCastModule;
class THEOplayerNativeChromecast {
_casting = false;
_state = _reactNativeTheoplayer.CastState.available;
constructor(player, view) {
this._player = player;
this._view = view;
this._player.addEventListener(_reactNativeTheoplayer.PlayerEventType.CAST_EVENT, this._onCastStateChange);
}
async init_() {
this._casting = await NativeCastModule.chromecastCasting(this._view.nativeHandle);
this._state = await NativeCastModule.chromecastState(this._view.nativeHandle);
}
_onCastStateChange = event => {
if (event.subType === _reactNativeTheoplayer.CastEventType.CHROMECAST_STATE_CHANGE) {
this._state = event.state;
this._casting = event.state === 'connected';
}
};
get casting() {
return this._casting;
}
get state() {
return this._state;
}
start() {
NativeCastModule.chromecastStart(this._view.nativeHandle);
}
stop() {
NativeCastModule.chromecastStop(this._view.nativeHandle);
}
join() {
NativeCastModule.chromecastJoin(this._view.nativeHandle);
}
leave() {
NativeCastModule.chromecastLeave(this._view.nativeHandle);
}
unload_() {
this._player.removeEventListener(_reactNativeTheoplayer.PlayerEventType.CAST_EVENT, this._onCastStateChange);
}
}
exports.THEOplayerNativeChromecast = THEOplayerNativeChromecast;
//# sourceMappingURL=THEOplayerNativeChromecast.js.map