Skip to content

Variable: WaveformRecorderView ​

ts
const WaveformRecorderView: ForwardRefExoticComponent<Omit<Readonly<Omit<Readonly<{
}>, 
  | "onMoveShouldSetResponder"
  | "onMoveShouldSetResponderCapture"
  | "onResponderGrant"
  | "onResponderMove"
  | "onResponderReject"
  | "onResponderRelease"
  | "onResponderStart"
  | "onResponderEnd"
  | "onResponderTerminate"
  | "onResponderTerminationRequest"
  | "onStartShouldSetResponder"
  | "onStartShouldSetResponderCapture"
  | "onMouseEnter"
  | "onMouseLeave"
  | "onClick"
  | "onClickCapture"
  | "onPointerEnter"
  | "onPointerEnterCapture"
  | "onPointerLeave"
  | "onPointerLeaveCapture"
  | "onPointerMove"
  | "onPointerMoveCapture"
  | "onPointerCancel"
  | "onPointerCancelCapture"
  | "onPointerDown"
  | "onPointerDownCapture"
  | "onPointerUp"
  | "onPointerUpCapture"
  | "onPointerOver"
  | "onPointerOverCapture"
  | "onPointerOut"
  | "onPointerOutCapture"
  | "onGotPointerCapture"
  | "onGotPointerCaptureCapture"
  | "onLostPointerCapture"
  | "onLostPointerCaptureCapture"
  | "onBlur"
  | "onBlurCapture"
  | "onFocus"
  | "onFocusCapture"
  | "onKeyDown"
  | "onKeyDownCapture"
  | "onKeyUp"
  | "onKeyUpCapture"
  | "onTouchCancel"
  | "onTouchCancelCapture"
  | "onTouchEnd"
  | "onTouchEndCapture"
  | "onTouchMove"
  | "onTouchMoveCapture"
  | "onTouchStart"
  | "onTouchStartCapture"
  | "nativeBackgroundAndroid"
  | "nativeForegroundAndroid"
  | "renderToHardwareTextureAndroid"
  | "hasTVPreferredFocus"
  | "nextFocusDown"
  | "nextFocusForward"
  | "nextFocusLeft"
  | "nextFocusRight"
  | "nextFocusUp"
  | "focusable"
  | "tabIndex"
  | "shouldRasterizeIOS"
  | "accessibilityIgnoresInvertColors"
  | "accessibilityViewIsModal"
  | "accessibilityShowsLargeContentViewer"
  | "accessibilityLargeContentTitle"
  | "aria-modal"
  | "accessibilityElementsHidden"
  | "accessibilityLanguage"
  | "accessibilityRespondsToUserInteraction"
  | "accessible"
  | "accessibilityLabel"
  | "accessibilityHint"
  | "aria-label"
  | "accessibilityRole"
  | "role"
  | "accessibilityState"
  | "accessibilityValue"
  | "aria-valuemax"
  | "aria-valuemin"
  | "aria-valuenow"
  | "aria-valuetext"
  | "accessibilityActions"
  | "aria-busy"
  | "aria-checked"
  | "aria-disabled"
  | "aria-expanded"
  | "aria-selected"
  | "aria-hidden"
  | "accessibilityLabelledBy"
  | "aria-labelledby"
  | "accessibilityLiveRegion"
  | "aria-live"
  | "importantForAccessibility"
  | "screenReaderFocusable"
  | "children"
  | "style"
  | "collapsable"
  | "collapsableChildren"
  | "id"
  | "testID"
  | "nativeID"
  | "needsOffscreenAlphaCompositing"
  | "hitSlop"
  | "pointerEvents"
  | "removeClippedSubviews"
  | "experimental_accessibilityOrder"> & Omit<Readonly<{
}>, 
  | "onMouseEnter"
  | "onMouseLeave"
  | "onClick"
  | "onClickCapture"
  | "onPointerEnter"
  | "onPointerEnterCapture"
  | "onPointerLeave"
  | "onPointerLeaveCapture"
  | "onPointerMove"
  | "onPointerMoveCapture"
  | "onPointerCancel"
  | "onPointerCancelCapture"
  | "onPointerDown"
  | "onPointerDownCapture"
  | "onPointerUp"
  | "onPointerUpCapture"
  | "onPointerOver"
  | "onPointerOverCapture"
  | "onPointerOut"
  | "onPointerOutCapture"
  | "onGotPointerCapture"
  | "onGotPointerCaptureCapture"
  | "onLostPointerCapture"
  | "onLostPointerCaptureCapture"
  | "onBlur"
  | "onBlurCapture"
  | "onFocus"
  | "onFocusCapture"
  | "onKeyDown"
  | "onKeyDownCapture"
  | "onKeyUp"
  | "onKeyUpCapture"
  | "onTouchCancel"
  | "onTouchCancelCapture"
  | "onTouchEnd"
  | "onTouchEndCapture"
  | "onTouchMove"
  | "onTouchMoveCapture"
  | "onTouchStart"
  | "onTouchStartCapture"
  | "nativeBackgroundAndroid"
  | "nativeForegroundAndroid"
  | "renderToHardwareTextureAndroid"
  | "hasTVPreferredFocus"
  | "nextFocusDown"
  | "nextFocusForward"
  | "nextFocusLeft"
  | "nextFocusRight"
  | "nextFocusUp"
  | "focusable"
  | "tabIndex"
  | "shouldRasterizeIOS"
  | "accessibilityIgnoresInvertColors"
  | "accessibilityViewIsModal"
  | "accessibilityShowsLargeContentViewer"
  | "accessibilityLargeContentTitle"
  | "aria-modal"
  | "accessibilityElementsHidden"
  | "accessibilityLanguage"
  | "accessibilityRespondsToUserInteraction"
  | "accessible"
  | "accessibilityLabel"
  | "accessibilityHint"
  | "aria-label"
  | "accessibilityRole"
  | "role"
  | "accessibilityState"
  | "accessibilityValue"
  | "aria-valuemax"
  | "aria-valuemin"
  | "aria-valuenow"
  | "aria-valuetext"
  | "accessibilityActions"
  | "aria-busy"
  | "aria-checked"
  | "aria-disabled"
  | "aria-expanded"
  | "aria-selected"
  | "aria-hidden"
  | "accessibilityLabelledBy"
  | "aria-labelledby"
  | "accessibilityLiveRegion"
  | "aria-live"
  | "importantForAccessibility"
  | "screenReaderFocusable"
  | "children"
  | "style"
  | "collapsable"
  | "collapsableChildren"
  | "id"
  | "testID"
  | "nativeID"
  | "needsOffscreenAlphaCompositing"
  | "hitSlop"
  | "pointerEvents"
  | "removeClippedSubviews"
  | "experimental_accessibilityOrder"> & Omit<Readonly<{
}>, 
  | "onClick"
  | "onClickCapture"
  | "onPointerEnter"
  | "onPointerEnterCapture"
  | "onPointerLeave"
  | "onPointerLeaveCapture"
  | "onPointerMove"
  | "onPointerMoveCapture"
  | "onPointerCancel"
  | "onPointerCancelCapture"
  | "onPointerDown"
  | "onPointerDownCapture"
  | "onPointerUp"
  | "onPointerUpCapture"
  | "onPointerOver"
  | "onPointerOverCapture"
  | "onPointerOut"
  | "onPointerOutCapture"
  | "onGotPointerCapture"
  | "onGotPointerCaptureCapture"
  | "onLostPointerCapture"
  | "onLostPointerCaptureCapture"
  | "onBlur"
  | "onBlurCapture"
  | "onFocus"
  | "onFocusCapture"
  | "onKeyDown"
  | "onKeyDownCapture"
  | "onKeyUp"
  | "onKeyUpCapture"
  | "onTouchCancel"
  | "onTouchCancelCapture"
  | "onTouchEnd"
  | "onTouchEndCapture"
  | "onTouchMove"
  | "onTouchMoveCapture"
  | "onTouchStart"
  | "onTouchStartCapture"
  | "nativeBackgroundAndroid"
  | "nativeForegroundAndroid"
  | "renderToHardwareTextureAndroid"
  | "hasTVPreferredFocus"
  | "nextFocusDown"
  | "nextFocusForward"
  | "nextFocusLeft"
  | "nextFocusRight"
  | "nextFocusUp"
  | "focusable"
  | "tabIndex"
  | "shouldRasterizeIOS"
  | "accessibilityIgnoresInvertColors"
  | "accessibilityViewIsModal"
  | "accessibilityShowsLargeContentViewer"
  | "accessibilityLargeContentTitle"
  | "aria-modal"
  | "accessibilityElementsHidden"
  | "accessibilityLanguage"
  | "accessibilityRespondsToUserInteraction"
  | "accessible"
  | "accessibilityLabel"
  | "accessibilityHint"
  | "aria-label"
  | "accessibilityRole"
  | "role"
  | "accessibilityState"
  | "accessibilityValue"
  | "aria-valuemax"
  | "aria-valuemin"
  | "aria-valuenow"
  | "aria-valuetext"
  | "accessibilityActions"
  | "aria-busy"
  | "aria-checked"
  | "aria-disabled"
  | "aria-expanded"
  | "aria-selected"
  | "aria-hidden"
  | "accessibilityLabelledBy"
  | "aria-labelledby"
  | "accessibilityLiveRegion"
  | "aria-live"
  | "importantForAccessibility"
  | "screenReaderFocusable"
  | "children"
  | "style"
  | "collapsable"
  | "collapsableChildren"
  | "id"
  | "testID"
  | "nativeID"
  | "needsOffscreenAlphaCompositing"
  | "hitSlop"
  | "pointerEvents"
  | "removeClippedSubviews"
  | "experimental_accessibilityOrder"> & Omit<Readonly<{
}>, 
  | "onClick"
  | "onBlur"
  | "onBlurCapture"
  | "onFocus"
  | "onFocusCapture"
  | "onKeyDown"
  | "onKeyDownCapture"
  | "onKeyUp"
  | "onKeyUpCapture"
  | "onTouchCancel"
  | "onTouchCancelCapture"
  | "onTouchEnd"
  | "onTouchEndCapture"
  | "onTouchMove"
  | "onTouchMoveCapture"
  | "onTouchStart"
  | "onTouchStartCapture"
  | "nativeBackgroundAndroid"
  | "nativeForegroundAndroid"
  | "renderToHardwareTextureAndroid"
  | "hasTVPreferredFocus"
  | "nextFocusDown"
  | "nextFocusForward"
  | "nextFocusLeft"
  | "nextFocusRight"
  | "nextFocusUp"
  | "focusable"
  | "tabIndex"
  | "shouldRasterizeIOS"
  | "accessibilityIgnoresInvertColors"
  | "accessibilityViewIsModal"
  | "accessibilityShowsLargeContentViewer"
  | "accessibilityLargeContentTitle"
  | "aria-modal"
  | "accessibilityElementsHidden"
  | "accessibilityLanguage"
  | "accessibilityRespondsToUserInteraction"
  | "accessible"
  | "accessibilityLabel"
  | "accessibilityHint"
  | "aria-label"
  | "accessibilityRole"
  | "role"
  | "accessibilityState"
  | "accessibilityValue"
  | "aria-valuemax"
  | "aria-valuemin"
  | "aria-valuenow"
  | "aria-valuetext"
  | "accessibilityActions"
  | "aria-busy"
  | "aria-checked"
  | "aria-disabled"
  | "aria-expanded"
  | "aria-selected"
  | "aria-hidden"
  | "accessibilityLabelledBy"
  | "aria-labelledby"
  | "accessibilityLiveRegion"
  | "aria-live"
  | "importantForAccessibility"
  | "screenReaderFocusable"
  | "children"
  | "style"
  | "collapsable"
  | "collapsableChildren"
  | "id"
  | "testID"
  | "nativeID"
  | "needsOffscreenAlphaCompositing"
  | "hitSlop"
  | "pointerEvents"
  | "removeClippedSubviews"
  | "experimental_accessibilityOrder"> & Omit<Readonly<{
}>, 
  | "onClick"
  | "onKeyDown"
  | "onKeyDownCapture"
  | "onKeyUp"
  | "onKeyUpCapture"
  | "onTouchCancel"
  | "onTouchCancelCapture"
  | "onTouchEnd"
  | "onTouchEndCapture"
  | "onTouchMove"
  | "onTouchMoveCapture"
  | "onTouchStart"
  | "onTouchStartCapture"
  | "nativeBackgroundAndroid"
  | "nativeForegroundAndroid"
  | "renderToHardwareTextureAndroid"
  | "hasTVPreferredFocus"
  | "nextFocusDown"
  | "nextFocusForward"
  | "nextFocusLeft"
  | "nextFocusRight"
  | "nextFocusUp"
  | "focusable"
  | "tabIndex"
  | "shouldRasterizeIOS"
  | "accessibilityIgnoresInvertColors"
  | "accessibilityViewIsModal"
  | "accessibilityShowsLargeContentViewer"
  | "accessibilityLargeContentTitle"
  | "aria-modal"
  | "accessibilityElementsHidden"
  | "accessibilityLanguage"
  | "accessibilityRespondsToUserInteraction"
  | "accessible"
  | "accessibilityLabel"
  | "accessibilityHint"
  | "aria-label"
  | "accessibilityRole"
  | "role"
  | "accessibilityState"
  | "accessibilityValue"
  | "aria-valuemax"
  | "aria-valuemin"
  | "aria-valuenow"
  | "aria-valuetext"
  | "accessibilityActions"
  | "aria-busy"
  | "aria-checked"
  | "aria-disabled"
  | "aria-expanded"
  | "aria-selected"
  | "aria-hidden"
  | "accessibilityLabelledBy"
  | "aria-labelledby"
  | "accessibilityLiveRegion"
  | "aria-live"
  | "importantForAccessibility"
  | "screenReaderFocusable"
  | "children"
  | "style"
  | "collapsable"
  | "collapsableChildren"
  | "id"
  | "testID"
  | "nativeID"
  | "needsOffscreenAlphaCompositing"
  | "hitSlop"
  | "pointerEvents"
  | "removeClippedSubviews"
  | "experimental_accessibilityOrder"> & Omit<Readonly<{
}>, 
  | "onClick"
  | "onTouchCancel"
  | "onTouchCancelCapture"
  | "onTouchEnd"
  | "onTouchEndCapture"
  | "onTouchMove"
  | "onTouchMoveCapture"
  | "onTouchStart"
  | "onTouchStartCapture"
  | "nativeBackgroundAndroid"
  | "nativeForegroundAndroid"
  | "renderToHardwareTextureAndroid"
  | "hasTVPreferredFocus"
  | "nextFocusDown"
  | "nextFocusForward"
  | "nextFocusLeft"
  | "nextFocusRight"
  | "nextFocusUp"
  | "focusable"
  | "tabIndex"
  | "shouldRasterizeIOS"
  | "accessibilityIgnoresInvertColors"
  | "accessibilityViewIsModal"
  | "accessibilityShowsLargeContentViewer"
  | "accessibilityLargeContentTitle"
  | "aria-modal"
  | "accessibilityElementsHidden"
  | "accessibilityLanguage"
  | "accessibilityRespondsToUserInteraction"
  | "accessible"
  | "accessibilityLabel"
  | "accessibilityHint"
  | "aria-label"
  | "accessibilityRole"
  | "role"
  | "accessibilityState"
  | "accessibilityValue"
  | "aria-valuemax"
  | "aria-valuemin"
  | "aria-valuenow"
  | "aria-valuetext"
  | "accessibilityActions"
  | "aria-busy"
  | "aria-checked"
  | "aria-disabled"
  | "aria-expanded"
  | "aria-selected"
  | "aria-hidden"
  | "accessibilityLabelledBy"
  | "aria-labelledby"
  | "accessibilityLiveRegion"
  | "aria-live"
  | "importantForAccessibility"
  | "screenReaderFocusable"
  | "children"
  | "style"
  | "collapsable"
  | "collapsableChildren"
  | "id"
  | "testID"
  | "nativeID"
  | "needsOffscreenAlphaCompositing"
  | "hitSlop"
  | "pointerEvents"
  | "removeClippedSubviews"
  | "experimental_accessibilityOrder"> & Omit<Readonly<{
}>, 
  | "onClick"
  | "nativeBackgroundAndroid"
  | "nativeForegroundAndroid"
  | "renderToHardwareTextureAndroid"
  | "hasTVPreferredFocus"
  | "nextFocusDown"
  | "nextFocusForward"
  | "nextFocusLeft"
  | "nextFocusRight"
  | "nextFocusUp"
  | "focusable"
  | "tabIndex"
  | "shouldRasterizeIOS"
  | "accessibilityIgnoresInvertColors"
  | "accessibilityViewIsModal"
  | "accessibilityShowsLargeContentViewer"
  | "accessibilityLargeContentTitle"
  | "aria-modal"
  | "accessibilityElementsHidden"
  | "accessibilityLanguage"
  | "accessibilityRespondsToUserInteraction"
  | "accessible"
  | "accessibilityLabel"
  | "accessibilityHint"
  | "aria-label"
  | "accessibilityRole"
  | "role"
  | "accessibilityState"
  | "accessibilityValue"
  | "aria-valuemax"
  | "aria-valuemin"
  | "aria-valuenow"
  | "aria-valuetext"
  | "accessibilityActions"
  | "aria-busy"
  | "aria-checked"
  | "aria-disabled"
  | "aria-expanded"
  | "aria-selected"
  | "aria-hidden"
  | "accessibilityLabelledBy"
  | "aria-labelledby"
  | "accessibilityLiveRegion"
  | "aria-live"
  | "importantForAccessibility"
  | "screenReaderFocusable"
  | "children"
  | "style"
  | "collapsable"
  | "collapsableChildren"
  | "id"
  | "testID"
  | "nativeID"
  | "needsOffscreenAlphaCompositing"
  | "hitSlop"
  | "pointerEvents"
  | "removeClippedSubviews"
  | "experimental_accessibilityOrder"> & Omit<Readonly<{
}>, 
  | "shouldRasterizeIOS"
  | "accessibilityIgnoresInvertColors"
  | "accessibilityViewIsModal"
  | "accessibilityShowsLargeContentViewer"
  | "accessibilityLargeContentTitle"
  | "aria-modal"
  | "accessibilityElementsHidden"
  | "accessibilityLanguage"
  | "accessibilityRespondsToUserInteraction"
  | "accessible"
  | "accessibilityLabel"
  | "accessibilityHint"
  | "aria-label"
  | "accessibilityRole"
  | "role"
  | "accessibilityState"
  | "accessibilityValue"
  | "aria-valuemax"
  | "aria-valuemin"
  | "aria-valuenow"
  | "aria-valuetext"
  | "accessibilityActions"
  | "aria-busy"
  | "aria-checked"
  | "aria-disabled"
  | "aria-expanded"
  | "aria-selected"
  | "aria-hidden"
  | "accessibilityLabelledBy"
  | "aria-labelledby"
  | "accessibilityLiveRegion"
  | "aria-live"
  | "importantForAccessibility"
  | "screenReaderFocusable"
  | "children"
  | "style"
  | "collapsable"
  | "collapsableChildren"
  | "id"
  | "testID"
  | "nativeID"
  | "needsOffscreenAlphaCompositing"
  | "hitSlop"
  | "pointerEvents"
  | "removeClippedSubviews"
  | "experimental_accessibilityOrder"> & Omit<Readonly<{
}>, 
  | "accessibilityIgnoresInvertColors"
  | "accessibilityViewIsModal"
  | "accessibilityShowsLargeContentViewer"
  | "accessibilityLargeContentTitle"
  | "aria-modal"
  | "accessibilityElementsHidden"
  | "accessibilityLanguage"
  | "accessibilityRespondsToUserInteraction"
  | "accessible"
  | "accessibilityLabel"
  | "accessibilityHint"
  | "aria-label"
  | "accessibilityRole"
  | "role"
  | "accessibilityState"
  | "accessibilityValue"
  | "aria-valuemax"
  | "aria-valuemin"
  | "aria-valuenow"
  | "aria-valuetext"
  | "accessibilityActions"
  | "aria-busy"
  | "aria-checked"
  | "aria-disabled"
  | "aria-expanded"
  | "aria-selected"
  | "aria-hidden"
  | "accessibilityLabelledBy"
  | "aria-labelledby"
  | "accessibilityLiveRegion"
  | "aria-live"
  | "importantForAccessibility"
  | "screenReaderFocusable"
  | "children"
  | "style"
  | "collapsable"
  | "collapsableChildren"
  | "id"
  | "testID"
  | "nativeID"
  | "needsOffscreenAlphaCompositing"
  | "hitSlop"
  | "pointerEvents"
  | "removeClippedSubviews"
  | "experimental_accessibilityOrder"> & Omit<Readonly<Omit<Readonly<{
}>, 
  | "accessibilityIgnoresInvertColors"
  | "accessibilityViewIsModal"
  | "accessibilityShowsLargeContentViewer"
  | "accessibilityLargeContentTitle"
  | "aria-modal"
  | "accessibilityElementsHidden"
  | "accessibilityLanguage"
  | "accessibilityRespondsToUserInteraction"
  | "accessible"
  | "accessibilityLabel"
  | "accessibilityHint"
  | "aria-label"
  | "accessibilityRole"
  | "role"
  | "accessibilityState"
  | "accessibilityValue"
  | "aria-valuemax"
  | "aria-valuemin"
  | "aria-valuenow"
  | "aria-valuetext"
  | "accessibilityActions"
  | "aria-busy"
  | "aria-checked"
  | "aria-disabled"
  | "aria-expanded"
  | "aria-selected"
  | "aria-hidden"> & Omit<Readonly<{
}>, 
  | "accessible"
  | "accessibilityLabel"
  | "accessibilityHint"
  | "aria-label"
  | "accessibilityRole"
  | "role"
  | "accessibilityState"
  | "accessibilityValue"
  | "aria-valuemax"
  | "aria-valuemin"
  | "aria-valuenow"
  | "aria-valuetext"
  | "accessibilityActions"
  | "aria-busy"
  | "aria-checked"
  | "aria-disabled"
  | "aria-expanded"
  | "aria-selected"
  | "aria-hidden"> & object>, 
  | "children"
  | "style"
  | "collapsable"
  | "collapsableChildren"
  | "id"
  | "testID"
  | "nativeID"
  | "needsOffscreenAlphaCompositing"
  | "hitSlop"
  | "pointerEvents"
  | "removeClippedSubviews"
  | "experimental_accessibilityOrder"> & Omit<Readonly<{
}>, never>>, "children"> & object & RefAttributes<WaveformRecorderViewRef>>;

Native audio recorder with a live waveform, preview playback and optional slide gestures. Drive it through a ref.

Only iOS and Android are supported; rendering it on other platforms throws.

Example ​

tsx
const ref = useRef<WaveformRecorderViewRef>(null);

<WaveformRecorderView
  ref={ref}
  style={{ height: 56 }}
  onComplete={(e) => console.log(e.uri, e.durationMs, e.samples)}
/>

Released under the MIT License.