react-native-sm-agora
Version:
React Native around the Agora RTC SDKs for Android and iOS agora
55 lines • 2.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const react_1 = tslib_1.__importDefault(require("react"));
const react_native_1 = require("react-native");
/**
* Import RCTAgoraView from native binding.
*
* This @object is used to bridge native layer between react layer.
*/
const RCTAgoraView = react_native_1.requireNativeComponent("RCTAgoraVideoView");
/**
* AgoraView is the render layer for rendering video stream
*
* This class is used to rendering native sdk stream
* @props {@link AgoraViewProps}
*
* @descrption AgoraViewProps has four properties.
* @property mode: {@link AgoraViewMode}, this property will setup video render mode. You could see more [details](https://docs.agora.io/en/Interactive%20Broadcast/API%20Reference/java/classio_1_1agora_1_1rtc_1_1_rtc_engine.html#ac08882c4d0ec47b329900df169493673)
* @property showLocalVideo: boolean, this property will render local video, NOTICE: IF YOU SET showLocalVideo YOU CANNOT SET remoteUid
* @property remoteUid: number, this property will render video with remote uid, NOTICE: IF YOU SET remoteUid YOU CANNOT SET showLocalVideo
* @property zOrderMediaOverlay: boolean, this property will working for android side and it likes zIndex behaviour on web side.
*
* @noInheritDoc
*/
class AgoraView extends react_1.default.Component {
/**
* render
*
* It would render view for VideoStream
*/
render() {
return (react_1.default.createElement(RCTAgoraView, Object.assign({}, this.getHTMLProps())));
}
/**
* getHTMLProps
*
* get agora view props
*/
getHTMLProps() {
let htmlProps = {};
for (let key in this.props) {
htmlProps[key] = this.props[key];
}
// convert uint32 to int32 for android
if (react_native_1.Platform.OS === 'android') {
const int32 = new Int32Array(1);
int32[0] = htmlProps.remoteUid;
htmlProps.remoteUid = int32[0];
}
return htmlProps;
}
}
exports.default = AgoraView;
//# sourceMappingURL=AgoraView.native.js.map