@moeez12/react-native-audiowave
v0.1.4
Published
React Native audio waveform component with built-in playback controls, seek functionality, and real-time visualization. Supports both local and remote audio files.
Readme
React Native Audiowave
A high-performance React Native audio waveform component with built-in playback controls, seek functionality, and real-time visualization. Built with Turbo Native Modules for optimal performance.
Features
- 🎵 Real-time Audio Visualization - Dynamic waveform rendering with customizable appearance
- 🎮 Built-in Playback Controls - Play, pause, stop, and seek functionality
- 📱 Cross-platform Support - Works seamlessly on both iOS and Android
- ⚡ Turbo Native Module - High-performance native implementation
- 🎨 Customizable UI - Flexible styling and theming options
- 📊 Audio Asset Resolution - Support for both local and remote audio files
Screenshots
Note: Add your sample UI screenshots here to showcase the component in action.
iOS Screenshot

Android Screenshot

Installation
Prerequisites
- React Native 0.71+
- iOS 12.0+ / Android API 21+
- For iOS: Xcode 14.0+
Install the package
yarn add @moeez12/react-native-audiowave
# or
npm install @moeez12/react-native-audiowaveiOS Setup
The following iOS frameworks need to be manually linked in Xcode:
- CoreMedia.framework - Core media functionality
- Accelerate.framework - High-performance vector and matrix operations
- AudioToolbox.framework - Audio processing and playback
- AVFoundation.framework - Audio/visual media handling
Manual Linking Steps:
Open your iOS project in Xcode
cd ios && open YourProject.xcworkspaceSelect your project target in the left sidebar
Go to "General" tab → "Frameworks, Libraries, and Embedded Content"
Click the "+" button and add each framework:
- CoreMedia.framework
- Accelerate.framework
- AudioToolbox.framework
- AVFoundation.framework
Ensure "Embed & Sign" is selected for each framework
Clean and rebuild your project
Android Setup
No additional configuration required for Android.
Usage
Basic Implementation
import React, { useState } from 'react';
import { View, StyleSheet } from 'react-native';
import AudioWaveform from '@moeez12/react-native-audiowave';
const App = () => {
const [audioUrl, setAudioUrl] = useState('path/to/your/audio.mp3');
return (
<View style={styles.container}>
<AudioWaveform
audioUri={audioUrl}
style={styles.waveform}
onPlayStateChange={(state) => console.log('Playback:', state)}
/>
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#f5f5f5',
},
waveform: {
width: '100%',
height: 200,
},
});Advanced Configuration
<AudioWaveform
audioUri="https://example.com/audio.mp3"
style={styles.waveform}
waveformColor="#007AFF"
backgroundColor="#FFFFFF"
progressColor="#34C759"
onPlayStateChange={(state) => console.log('Playback:', state)}
onError={(error) => {
console.error('Audio error:', error);
}}
/>API Reference
Props
| Prop | Type | Default | Description |
|------|------|---------|-------------|
| audioUri | string | Required | URL or path to the audio file |
| style | ViewStyle | {} | Custom styling for the waveform container |
| waveformColor | string | #007AFF | Color of the waveform bars |
| backgroundColor | string | #FFFFFF | Background color of the waveform |
| progressColor | string | #34C759 | Color of the playback progress |
| onPlayStateChange | function | - | Callback when playback state changes |
| onPositionChange | function | - | Callback when position changes |
| onError | function | - | Callback when audio errors occur |
Performance
This library is built with Turbo Native Modules, providing:
- Faster startup times compared to legacy bridge architecture
- Reduced memory usage through efficient native communication
- Better performance for audio processing and visualization
- Synchronous method calls where possible
- Optimized native code generation
Troubleshooting
Common Issues
Audio not playing on iOS
- Check that audio files are in supported formats (MP3, WAV, M4A)
Waveform not rendering
- Verify audio file path/URL is correct
- Check console for error messages
- Ensure audio file is accessible
Build errors on iOS
- Clean build folder:
cd ios && rm -rf build && cd .. - Reinstall pods:
cd ios && pod install && cd ..
- Clean build folder:
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
- 📧 Email: [email protected]
- 🐛 Issues: GitHub Issues
- 📖 Documentation: GitHub Wiki
Made with ❤️ by Moeez Ahmad
