Skip to content

React Native Waveform PlayerVoice notes, drawn natively

One Fabric component plays any local or remote audio file and renders a play button, an animated waveform you can scrub, a time label and a speed pill. Swift on iOS, Kotlin on Android, no JavaScript in the playback or drawing loop.

0:090:151.5x

Install ​

sh
npm install react-native-waveform-player
cd ios && pod install
sh
yarn add react-native-waveform-player
cd ios && pod install
sh
npx expo install react-native-waveform-player
npx expo prebuild

See Installation for requirements and Expo details.

Render a voice note ​

tsx
import { AudioWaveformView } from 'react-native-waveform-player';

<AudioWaveformView
  source={{ uri: 'https://example.com/voice-note.m4a' }}
  style={{ height: 56 }}
/>;

Try it in the browser ​

Web approximation of the native component, playing a short clip generated in your browser. Layout and behavior follow the iOS implementation; real rendering is native.

Change colors, bar size and more in the styling playground.

See it on a device ​

Example app on iOS with four voice-note players in different styles
iOS
Example app on Android with four voice-note players in different styles
Android

Need to record too? ​

This library plays and visualizes audio. To record voice notes with a live waveform, see the sister library react-native-waveform-recorder.

Released under the MIT License.