expo-libvlc-player
Version:
LibVLC Player for Expo
57 lines • 2.48 kB
JavaScript
import { requireNativeView } from "expo";
import { forwardRef } from "react";
import { parseSource } from "./utils/assets";
import { converNativeEvent } from "./utils/events";
import { convertNativeProps } from "./utils/props";
const NativeView = requireNativeView("ExpoLibVlcPlayer");
let loggedRenderingChildrenWarning = false;
const LibVlcPlayerView = forwardRef((props, ref) => {
const nativeProps = convertNativeProps(props);
// @ts-expect-error
if (nativeProps.children && !loggedRenderingChildrenWarning) {
console.warn("The <LibVlcPlayerView> component does not support children. This may lead to inconsistent behaviour or crashes. If you want to render content on top of the LibVlcPlayer, consider using absolute positioning.");
loggedRenderingChildrenWarning = true;
}
const onEncounteredError = (event) => {
if (props.onEncounteredError) {
const nativeEvent = converNativeEvent(event);
props.onEncounteredError(nativeEvent);
}
};
const onTimeChanged = (event) => {
if (props.onTimeChanged) {
const nativeEvent = converNativeEvent(event);
props.onTimeChanged(nativeEvent);
}
};
const onPositionChanged = (event) => {
if (props.onPositionChanged) {
const nativeEvent = converNativeEvent(event);
props.onPositionChanged(nativeEvent);
}
};
const onESAdded = (event) => {
if (props.onESAdded) {
const nativeEvent = converNativeEvent(event);
props.onESAdded(nativeEvent);
}
};
const onDialogDisplay = (event) => {
if (props.onDialogDisplay) {
const nativeEvent = converNativeEvent(event);
props.onDialogDisplay(nativeEvent);
}
};
const onFirstPlay = (event) => {
if (props.onFirstPlay) {
const nativeEvent = converNativeEvent(event);
props.onFirstPlay(nativeEvent);
}
};
return (<NativeView {...nativeProps} ref={ref} source={parseSource(props.source)} slaves={props.slaves?.map((slave) => ({
...slave,
source: parseSource(slave.source),
}))} onEncounteredError={onEncounteredError} onTimeChanged={onTimeChanged} onPositionChanged={onPositionChanged} onESAdded={onESAdded} onDialogDisplay={onDialogDisplay} onFirstPlay={onFirstPlay}/>);
});
export default LibVlcPlayerView;
//# sourceMappingURL=LibVlcPlayerView.js.map