import React, { useState, useMemo, useCallback } from 'react'; import { StyleSheet, View, Text, Dimensions, StatusBar, SafeAreaView, ScrollView, TouchableHighlight, Button, } from 'react-native'; import VideoPlayer from 'react-native-video-player'; import { useRecordScreenZone } from 'react-native-record-screen-zone'; export default function App() { const { startRecording, stopRecording, cleanRecord, RecordScreenZone, } = useRecordScreenZone(); const [uri, setUri] = useState(''); const [recording, setRecording] = useState(false); const _handleOnRecording = async () => { if (recording) { setRecording(false); const res = await stopRecording().catch((error) => console.warn(error)); console.log('res', res); if (res) { setUri(res.result.outputURL); } } else { setUri(''); setRecording(true); await startRecording().catch((error) => { console.warn(error); setRecording(false); setUri(''); }); } }; const _handleOnCleanSandbox = useCallback(() => { cleanRecord(); }, [cleanRecord]); const _handleOnClose = useCallback(() => { setRecording(false); setUri(''); }, []); const btnStyle = useMemo(() => { return recording ? styles.btnActive : styles.btnDefault; }, [recording]); return ( <> {recording ? ( Recording ) : (