Hiyve Components - v1.0.0
    Preparing search index...

    Function useRecording

    • Access recording state and controls.

      Provides the current recording status, a live duration counter that updates every second while recording is active, and actions to start and stop recording.

      Returns {
          clearRecordingError: () => void;
          error: string | null;
          isRecording: boolean;
          isRecordingStarting: boolean;
          recordingDuration: number;
          recordingId: string | null;
          recordingStartTime: Date | null;
          responseId: string | null;
          startRecording: (options?: RecordingOptions) => Promise<boolean>;
          stopRecording: () => Promise<void>;
      }

      Object containing recording state (isRecording, isRecordingStarting, recordingId, recordingStartTime, recordingDuration, responseId, error) and actions (startRecording, stopRecording, clearRecordingError)

      • clearRecordingError: () => void
      • error: string | null
      • isRecording: boolean
      • isRecordingStarting: boolean
      • recordingDuration: number
      • recordingId: string | null
      • recordingStartTime: Date | null
      • responseId: string | null
      • startRecording: (options?: RecordingOptions) => Promise<boolean>
      • stopRecording: () => Promise<void>
      import { useRecording } from '@hiyve/rn-react';

      function RecordingControls() {
      const { isRecording, isRecordingStarting, recordingDuration, startRecording, stopRecording, error } = useRecording();

      const formatDuration = (seconds: number) => {
      const m = Math.floor(seconds / 60);
      const s = seconds % 60;
      return `${m}:${s.toString().padStart(2, '0')}`;
      };

      return (
      <View>
      {isRecording && <Text>Recording: {formatDuration(recordingDuration)}</Text>}
      {error && <Text style={{ color: 'red' }}>{error}</Text>}
      <Button
      title={isRecording ? 'Stop Recording' : 'Start Recording'}
      onPress={() => isRecording ? stopRecording() : startRecording()}
      disabled={isRecordingStarting}
      />
      </View>
      );
      }