Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@siteed/expo-audio-studio

deeeed6.1kMIT2.14.2TypeScript support: included

Comprehensive audio processing library for React Native and Expo with recording, analysis, visualization, and streaming capabilities across iOS, Android, and web

react-native, expo, audio, recording, audio-analysis, audio-processing, audio-visualization, waveform, spectrogram, mel-spectrogram, mfcc, audio-features, audio-compression, opus, aac, pcm, wav, cross-platform, background-recording, audio-trimming, dual-stream

readme

@siteed/expo-audio-studio

kandi X-Ray Version Dependency Status License

Comprehensive audio studio library for React Native and Expo with recording, analysis, visualization, and streaming capabilities across iOS, Android, and web platforms.

iOS Demo

iOS Demo

Android Demo

Android Demo

Try AudioPlayground: Complete audio processing app built with this library

Try it in the Playground

Give it a GitHub star 🌟, if you found this repo useful. GitHub stars

Note: This package was formerly known as @siteed/expo-audio-stream. The name has been changed to better reflect the expanded capabilities beyond just audio streaming.

Features

  • Real-time audio streaming across iOS, Android, and web.
  • Audio input device detection and selection:
    • List and select from available audio input devices
    • View detailed device capabilities (sample rates, channels, bit depths)
    • Support for Bluetooth, USB, and wired devices
    • Automatic device management with fallback options
    • Intelligent detection refresh for Bluetooth devices
  • Dual-stream recording capabilities:
    • Simultaneous raw PCM and compressed audio recording
    • Compression formats: OPUS or AAC
    • Configurable bitrate for compressed audio
    • Optimized storage for both high-quality and compressed formats
  • Intelligent interruption handling:
    • Automatic pause/resume during phone calls
    • Configurable automatic resumption
    • Detailed interruption event callbacks
  • Configurable intervals for audio buffer receipt.
  • Automated microphone permissions setup in managed Expo projects.
  • Background audio recording on iOS.
  • Audio features extraction during recording.
  • Consistent WAV PCM recording format across all platforms.
  • Keep recording active while app is in background
  • Zero-latency recording with preparation API:
    • Pre-initialize audio recording to eliminate startup delay
    • Prepare permissions, audio buffers, and sessions in advance
    • Start recording instantly when needed
  • Rich notification system for recording status:
    • Android: Live waveform visualization in notifications
    • Android: Fully customizable notification appearance and actions
    • iOS: Media player integration
  • Advanced audio analysis capabilities:
    • Mel spectrogram generation for machine learning and visualization
    • Comprehensive audio feature extraction (MFCC, spectral features, etc.)
    • Lightweight waveform preview generation
  • Precision audio manipulation:
    • Advanced audio splitting and trimming API
    • Support for trimming multiple segments in a single operation
    • Ability to keep or remove specific time ranges
  • Complete ecosystem:
    • Full-featured AudioPlayground application showcasing advanced API usage
    • Ready-to-use UI components via @siteed/expo-audio-ui package
    • Visualizations, waveforms, and audio controls that can be directly incorporated into your app

Audio Analysis Features

Extract powerful audio features for advanced audio processing and visualization:

// Extract audio analysis with specific features enabled
const analysis = await extractAudioAnalysis({
  fileUri: 'path/to/recording.wav',
  features: {
    energy: true,     // Overall energy of the audio
    rms: true,        // Root mean square (amplitude)
    zcr: true,        // Zero-crossing rate
    mfcc: true,       // Mel-frequency cepstral coefficients
    spectralCentroid: true,  // Brightness of sound
    tempo: true,      // Estimated BPM
  }
});

Available Audio Features

  • Basic Analysis: RMS, energy, amplitude range, zero-crossing rate
  • Spectral Features: Spectral centroid, flatness, rolloff, bandwidth
  • Advanced Analysis:
    • MFCC (Mel-frequency cepstral coefficients)
    • Chromagram (pitch class representation)
    • Mel Spectrogram
    • Harmonics-to-noise ratio
    • Tempo estimation
    • Pitch detection

Use Cases

  • Visualize audio waveforms with detailed metrics
  • Implement speech recognition preprocessing
  • Create music analysis applications
  • Build audio fingerprinting systems
  • Develop voice activity detection

API Overview

The library provides several specialized APIs for different audio processing needs:

Recording and Playback

  • useAudioRecorder: Hook for recording audio with configurable quality settings
  • AudioRecorderProvider: Context provider for sharing recording state across components
  • useSharedAudioRecorder: Hook to access shared recording state from any component
// Start a new recording with configuration
const { startRecording, stopRecording, isRecording, recordingUri } = useAudioRecorder({
  audioQuality: 'high',
  sampleRate: 44100,
  numberOfChannels: 2,
  bitDepth: 16,
  outputFormat: 'wav',
});

// Use the prepare API for zero-latency recording
const { prepareRecording, startRecording, stopRecording } = useSharedAudioRecorder();

// First prepare the recording - this initializes all resources
await prepareRecording({
  sampleRate: 44100,
  channels: 2,
  encoding: 'pcm_16bit'
});

// Later when needed, start instantly with no delay
await startRecording(/* same config as prepare */);

// Share recording state across components
const AudioApp = () => (
  <AudioRecorderProvider>
    <RecordButton />
    <AudioVisualizer />
  </AudioRecorderProvider>
);

Audio Analysis

  • extractAudioAnalysis: Extract comprehensive audio features for detailed analysis
  • extractPreview: Generate lightweight waveform data for visualization
  • extractAudioData: Extract raw PCM data for custom processing
  • extractRawWavAnalysis: Analyze WAV files without decoding, preserving original PCM values
// Extract detailed audio analysis with feature extraction
const analysis = await extractAudioAnalysis({
  fileUri: 'path/to/recording.wav',
  features: { rms: true, zcr: true, mfcc: true }
});

// Generate a lightweight waveform preview
const preview = await extractPreview({
  fileUri: 'path/to/recording.wav',
  pointsPerSecond: 50
});

// Extract raw PCM data for custom processing
const audioData = await extractAudioData({
  fileUri: 'path/to/recording.wav',
  includeWavHeader: true
});

Choosing the Right Audio Analysis Method

Method Purpose Performance Use When
extractAudioAnalysis Comprehensive audio feature extraction Medium-Heavy You need detailed audio features like MFCC, spectral features
extractPreview Lightweight waveform visualization Very Light You only need amplitude data for visualization
extractAudioData Raw PCM data extraction Medium You need the raw audio data for custom processing
extractRawWavAnalysis WAV analysis without decoding Light You want to analyze WAV files while preserving original values
extractMelSpectrogram Mel spectrogram generation Heavy You need frequency-domain representation for ML or visualization

Specialized Audio Processing

  • extractMelSpectrogram: Generate mel spectrogram for audio visualization or ML models
  • trimAudio: Trim audio files with precision, supporting multiple segments and formats
// Generate mel spectrogram for audio visualization or ML models
const melSpectrogram = await extractMelSpectrogram({
  fileUri: 'path/to/recording.wav',
  windowSizeMs: 25,
  hopLengthMs: 10,
  nMels: 40
});

// Trim audio files with precision
const trimmedAudio = await trimAudio({
  fileUri: 'path/to/recording.wav',
  startTimeMs: 1000,
  endTimeMs: 5000,
  outputFormat: { format: 'wav' }
});

// Trim multiple segments from an audio file
const compiledAudio = await trimAudio({
  fileUri: 'path/to/recording.wav',
  mode: 'keep',
  ranges: [
    { startTimeMs: 1000, endTimeMs: 5000 },
    { startTimeMs: 10000, endTimeMs: 15000 }
  ]
});

Utility Functions

  • convertPCMToFloat32: Convert PCM data to Float32Array for processing
  • getWavFileInfo: Extract metadata from WAV files
  • writeWavHeader: Create WAV headers for raw PCM data

Low-Level Access

For advanced use cases, the library provides direct access to the native module:

import { ExpoAudioStreamModule } from '@siteed/expo-audio-studio';

// Access platform-specific functionality
const status = await ExpoAudioStreamModule.status();
const permissions = await ExpoAudioStreamModule.getPermissionsAsync();

Documentation

For detailed documentation, please refer to the Getting Started Guide.

For developers interested in contributing or debugging the library, please see the Contribution Guide.

Companion Resources

AudioPlayground Application

The repository includes a complete AudioPlayground application that demonstrates advanced usage of the API. This playground serves as both a demonstration and a learning resource:

  • Interactive examples of all major API features
  • Real-time audio visualization and analysis
  • Code samples you can directly reference for your own implementation

Try it online at https://deeeed.github.io/expo-audio-stream/playground or run it locally from the repository.

UI Components Package

The @siteed/expo-audio-ui package provides ready-to-use UI components for audio applications:

# Install the UI components package
npm install @siteed/expo-audio-ui

# or with yarn
yarn add @siteed/expo-audio-ui

This package includes:

  • Waveform visualizers
  • Audio recording controls
  • Playback components
  • Spectrogram displays
  • And more!

All components are built with React Native, Reanimated, and Skia for optimal performance across platforms.

License

This project is licensed under the MIT License - see the LICENSE file for details.


Created by Arthur Breton • See more projects at siteed.net

changelog

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

2.14.2 - 2025-06-11

Changed

  • fix(ios): update compressed file size when primary output is disabled (9f03ee0)
  • feat(expo-audio-studio): add platform limitations validation and documentation (7e062ff)
  • docs: reorg (0251063)

    2.14.1 - 2025-06-11

    Changed

  • fix(android): Fix duration returning 0 when primary output is disabled (#244) (38d6f50)

    2.14.0 - 2025-06-11

    Changed

  • feat(expo-audio-studio): comprehensive cross-platform stop recording performance optimization (b3ed474)

    2.13.2 - 2025-06-10

    Changed

  • fix: invalid type exports (18340ea)
  • chore(expo-audio-studio): release @siteed/expo-audio-studio@2.13.1 (9ccce85)

    2.13.1 - 2025-06-09

    Changed

  • feat(investigation): resolve Issue #251 - comprehensive sub-100ms audio events analysis (#270) (4813f1e)
  • fix(deps): update expo-modules-core peer dependency for Expo SDK 53 compatibility (40b946f)
  • docs: updated docs site (8a01a97)

    2.13.0 - 2025-06-09

    Changed

  • feat(expo-audio-studio): enhance device detection and management system (97ceef0)

    2.12.3 - 2025-06-07

    Changed

  • refactor(expo-audio-studio): adjust audio focus request timing in AudioRecorderManager (317367c)
  • chore(expo-audio-studio): release @siteed/expo-audio-studio@2.12.2 (14db4eb)

    2.12.2 - 2025-06-07

    Changed

  • fix: audio focus strategy implementation for Android background recording (#267) (5b7b7ed)

    2.12.1 - 2025-06-07

    Changed

  • feat(playground): implement agent validation framework and enhance testing capabilities (#266) (e7937e0)

    2.12.0 - 2025-06-07

    Changed

  • fix(android): resolve PCM streaming duration calculation bug (Issue #263) (#265) (a0c5500)
  • feat(expo-audio-studio): implement Android-only audioFocusStrategy (#264) (cc77226)
  • docs: fix comment formatting in OutputConfig interface for clarity (07fac61)

    2.11.0 - 2025-06-05

    Changed

  • refactor(expo-audio-studio): remove android/build.gradle and add device disconnection fallback tests (36fe9a9)
  • fix(expo-audio-studio): enforce 10ms minimum interval on both platforms (#262) (035fc07)
  • fix(expo-audio-studio): add proper MediaCodec resource cleanup in AudioProcessor (2b069b6)
  • feat(expo-audio-studio): add audio format enhancement specification and tests (ace22a2)
  • feat!: Add M4A support with preferRawStream option (#261) (c9faeb0)

    2.10.6 - 2025-06-04

    Changed

  • fix(expo-audio-studio): prevent durationMs returning 0 on iOS (#244) (#260) (595e5d5)
  • chore(expo-audio-studio): release @siteed/expo-audio-studio@2.10.5 (d8c6e1d)

    2.10.5 - 2025-06-04

    Changed

  • fix(expo-audio-studio): enable audio streaming when primary output is disabled on iOS (#259) (1d2bb92)
  • chore(expo-audio-studio): release @siteed/expo-audio-studio@2.10.4 (32f8c9e)

    2.10.4 - 2025-06-03

    Changed

  • fix(expo-audio-studio): resolve Swift compilation scope error in AudioStreamManager (#256) (b44bf3d)
  • chore(expo-audio-studio): release @siteed/expo-audio-studio@2.10.3 (5e23474)

    2.10.3 - 2025-06-02

    Changed

  • fix: prevent UninitializedPropertyAccessException crash in developer menu (#250) (83c1fd7)
  • fix: return compression info when primary output is disabled (issue #244) (#249) (31d97c1)

    2.10.2 - 2025-05-31

    Changed

  • fix: Buffer size calculation and document duplicate emission fix for … (#248) (204dde5)
  • chore(expo-audio-studio): release @siteed/expo-audio-studio@2.10.1 (0acbfc5)

    2.10.1 - 2025-05-27

    Changed

  • fix(useAudioRecorder): update intervalId type for better type safety (dc0021a)
  • chore(expo-audio-studio): release @siteed/expo-audio-studio@2.10.0 (bb8418f)

    2.10.0 - 2025-05-26

    Changed

  • chore(expo-audio-studio): update @siteed/design-system to version 0.51.0 and refactor recording configuration (#245) (6486c66)
  • feat(expo-audio-studio): add buffer duration control and skip file writing options (bfdbcb8)
  • docs: enhance contribution guidelines with Test-Driven Development practices (2c04eff)
  • feat(expo-audio-studio): enhance testing framework and add instrumented tests (#242) (6e823ec)

    2.9.0 - 2025-05-15

    Changed

  • refactor(WebRecorder): remove unused compression logic and clean up blob creation (91f6bba)
  • feat: Add Web Audio Test Page and Enhance web Audio Chunk Handling (#240) (0a3cce0)
  • docs: update README and documentation to highlight experimental advanced audio feature extraction capabilities and performance considerations (57fc4de)
  • feat: clean up redundant code and improve stability (#238) (1b01256)
  • chore(expo-audio-studio): release @siteed/expo-audio-studio@2.8.6 (50a0fce)

    2.8.6 - 2025-05-11

    Changed

  • chore(expo-audio-studio): update Android module configuration and prevent plugin conflicts (7f696fb)
  • chore(expo-audio-studio): release @siteed/expo-audio-studio@2.8.5 (bece9b6)

    2.8.5 - 2025-05-11

    Changed

  • chore(expo-audio-studio): remove exports field from package.json (9dd5029)
  • chore(expo-audio-studio): release @siteed/expo-audio-studio@2.8.4 (e86a373)

    2.8.4 - 2025-05-11

    Changed

  • fix(expo-audio-studio): expo plugin setup (78810c1)

    2.8.3 - 2025-05-06

    Changed

  • chore(expo-audio-studio): update plugin configuration to use ESM format and streamline build process (97432eb)
  • chore(expo-audio-studio): release @siteed/expo-audio-studio@2.8.2 (255c802)

    2.8.2 - 2025-05-06

    Changed

  • chore(expo-audio-studio): update TypeScript configurations for dual module support and enhance CommonJS compatibility (7377a5f)
  • chore(expo-audio-studio): release @siteed/expo-audio-studio@2.8.1 (78721e4)

    2.8.1 - 2025-05-06

    Changed

  • feat(expo-audio-studio): implement dual module format (ESM/CommonJS) to resolve module resolution issues (#235) (58c5a94)
  • chore(expo-audio-studio): release @siteed/expo-audio-studio@2.8.0 (a879e93)

    2.8.0 - 2025-05-04

    Changed

  • feat(playground): Version 1.0.1 with Audio Enhancements, App Updates, and Navigation Refactor (#229) (868fca0)
  • chore: enhance publish script to include git push after documentation updates (1b0b0db)
  • chore(expo-audio-studio): release @siteed/expo-audio-studio@2.7.0 (fe19a2f)

    2.7.0 - 2025-05-04

    Changed

  • fix: Enhance iOS Background Audio Recording and Audio Format Conversion (#228) (c17169b)
  • chore(expo-audio-studio): improve build script for cjs esm conversion (767dfbe)

    2.6.3 - 2025-05-03

    Changed

  • chore: update readme with store download information (#224) (c404d86)

    2.6.2 - 2025-05-01

    Changed

  • fix(audio-studio): ensure foreground-only audio recording works with FOREGROUND_SERVICE #202 (#221) (abc450c)
  • chore(expo-audio-studio): release @siteed/expo-audio-studio@2.6.1 (9191a2c)

    2.6.1 - 2025-05-01

    Changed

  • fix(expo-audio-studio): Resolve iOS HW Format Mismatch Crash and Enhance Logging (#220) (4909f76)

    2.6.0 - 2025-05-01

    Changed

  • fix(audio-studio): resolve web audio recording issue without compression #217 (#219) (2daa373)

    2.5.0 - 2025-04-30

    Changed

  • fix(ios): ensure complete audio data emission on recording stop/pause (#215) (236e7aa)
  • feat(audio-device): Complete Android implementation for audio device API (#214) (cedc8d2)
  • feat(audio-device): Implement cross-platform audio device detection, selection, and fallback handling (#213) (023b8a1)
  • feat: Add Zero-Latency Audio Recording with prepareRecording API (#211) (30cb56c)
  • docs: update api references for v2.4.1 (b15daef)
  • chore(sherpa-onnx-demo): Restructure WebAssembly Setup and Clean Up Assets (#208) (7c2adff)

    2.4.1 - 2025-04-08

    Changed

  • feat(audio-stream): enhance background audio handling and permission checks (#200) (60befbe)

    2.4.0 - 2025-04-03

    Changed

  • fix(audio-stream): resolve iOS sample rate mismatch and enhance recording stability (#198) (05bfc61)
  • feat(audio-stream): enhance Android permission handling for phone state and notifications (#196) (63a259d)

    2.3.1 - 2025-04-03

    Changed

  • feat: no external crc32 libs (#195) (394b3b3)

    2.3.0 - 2025-03-29

    Changed

  • fix: always generate a new UUID unless filename is provided (#182) (f98a9a5)
  • refactor(audio-studio): introduce constants for silence threshold and WAV header size (#188) (e8aa329)
  • docs: enhance installation and API reference documentation for phone call handling (#187) (fcaece1)

    2.2.0 - 2025-03-28

    Changed

  • refactor(audio-studio): implement platform-specific CRC32 handling (b61a3d7)
  • chore: update Expo dependencies and remove invalid design-system version (16e5007)
  • fix: linting issues (741589d)
  • chore(expo-audio-studio): release @siteed/expo-audio-studio@2.1.1 (1b17ac6)

    2.1.1 - 2025-03-04

    Changed

  • feat: Rename@siteed/expo-audio-stream to @siteed/expo-audio-studio (#160) (1b99191)

    2.1.0 - 2025-03-04

    Changed

  • feat(docs): enhance audio processing documentation and examples (#158) (26afd49)
  • feat: Add Mel Spectrogram Extraction and Language Detection to Audio Processing (#157) (4129dee)
  • feat: enhance audio import functionality and decibel visualization (#156) (2dbecc7)
  • feat(trim): Implement iOS trim support with custom filename and format improvements (#152) (dd49be4)
  • feat: Add Sample Rate Control and Web Trimming Support to Expo Audio Stream (#151) (9158eec)
  • feat: Enhance audio trimming with optimized processing and detailed feedback (#150) (41a6945)
  • feat(trim): add audio trimming functionality with visualization and preview (Android only) (#149) (cba03dc)
  • chore(expo-audio-stream): release @siteed/expo-audio-stream@2.0.1 (c77cfc8)

    2.0.1 - 2025-02-27

    Changed

  • refactor: update background mode handling for audio stream plugin (e7e98cc)
  • chore(expo-audio-stream): release @siteed/expo-audio-stream@2.0.0 (356d3f4)

    2.0.0 - 2025-02-27

    Changed

  • feat(playground): Enhance Audio Playground with Improved UX and Sample Audio Loading (#148) (09d2794)
  • feat: Implement Enhanced Audio Transcription Workflow with Configurable Extraction and UI Updates (#147) (c658c7e)
  • fix: audio recording reliability improvements and web IndexedDB management (#146) (d4fa245)
  • feat(transcription): refactor and unify transcription services across platforms (#145) (a94b905)
  • feat(audio): enhance checksum verification and audio segment analysis (#143) (49b6587)
  • feat(playground): implement cross-platform ONNX runtime with Silero VAD model (#142) (4a94639)
  • feat(audio-analysis): enhance audio analysis and visualization capabilities (#141) (ecf8f5d)
  • android 15 (#140) (5321a3c)
  • refactor(audio): consolidate audio analysis APIs and migrate to segment-based processing (#139) (5d45da8)
  • feat: pcm player (#137) (8db6f16)
  • feat(audio-stream): add extractAudioData API (faf8915)
  • feat(audio): improve audio trimming and waveform visualization (#136) (ad5514b)
  • feat(audio): enhance audio player with preview, trimming and feature analysis (#135) (3f7eb9c)
  • feat: add web permission for microphone (#131) (9a2ed7f)
  • refactor(audio): simplify amplitude analysis and remove redundant configuration (#133) (5d64aa2)
  • feat: add full audio analysis with spectral features and time range controls (#132) (5677dc3)
  • chore(expo-audio-stream): release @siteed/expo-audio-stream@1.17.0 (689aead)

    1.17.0 - 2025-02-18

    Changed

  • feat(web): add audio interval analysis (281b7e6)
  • feat(android): implement interval visualization android (7e9678e)
  • feat(playground): implement intervalAnalysis and validate iOS settings (#126) (3d35adf)
  • feat(ios): Make it possible to set a different interval for the audio analysis (#125) (10a914e)

    1.16.0 - 2025-02-17

    Changed

  • fix(expo-audio-stream): prevent adding iOS background modes when disabled (5c9d09c)
  • fix(ios): replace CallKit with AVAudioSession for phone call detection (e3b664b)
  • chore(expo-audio-stream): release @siteed/expo-audio-stream@1.15.1 (cbc3d10)

    1.15.1 - 2025-02-17

    Changed

  • fix: restore Opus compression support on iOS (#122) (06614e6)
  • feat: dont block while emitting audio analysis (01d91d1)
  • chore(expo-audio-stream): release @siteed/expo-audio-stream@1.15.0 (f94c601)

    1.15.0 - 2025-02-15

    Changed

  • fix(ios): improve audio recording interruption handling and auto-resume functionality (#119) (7767dff)
  • fix(android): improve background recording and call interruption handling (#118) (bf19fe9)

    1.14.2 - 2025-02-13

  • fix: update STOP action to clear recording metadata (3484f76)

    1.14.1 - 2025-02-12

  • fix: enable background recording by default and improve audio playground (#114) (2f60d5e)

    1.14.0 - 2025-02-12

  • fix: keepAwake issue on ios and auto resume after call (#113) (ed8e184)

    1.13.2 - 2025-02-10

  • fix: ensure foreground service starts within required timeframe (60dad52)

    1.13.1 - 2025-02-10

  • readme update with latest demos

    1.13.0 - 2025-02-09

  • Audiodecode (#104) (173f589)
  • fix: resolve background recording issues and improve status checking (#103) (a174d50)

    1.12.3 - 2025-02-08

  • fix: infinite rerender issue (54a6a84)

    1.12.1 - 2025-02-01

  • fix: improve audio recording interruption handling and consistency (#98) (0fd5a146)

    1.12.0 - 2025-01-31

  • feat: add call state checks before starting or resuming recording (#94) (63e70a0)
  • feat: add custom filename and directory support for audio recordings (#92) (2f30f9d)
  • feat: enhance compressed recording info with file size (#90) (47254aa)

    1.11.3 - 2025-01-25

  • disable duplicate notification alerts for audio stream (#82) (12f9992)
  • feat(deps): update expo packages and dependencies to latest patch versions (#81) (3ed0526)

    1.11.2 - 2025-01-22

  • resources not cleanup properly on app kill (#80) (7d522a5)

    1.11.1 - 2025-01-22

  • chore: force deployment of 1.11.1

    1.11.0 - 2025-01-22

  • feat(audio): add intelligent call interruption handling & compression improvements (f8f6187)

    1.10.0 - 2025-01-14

  • add support for pausing and resuming compressed recordings (bc3f629)
  • optimize notification channel settings (daa075e)

    1.9.2 - 2025-01-12

  • ios bitrate verification to prevent invalid values (035a180)

    1.9.1 - 2025-01-12

  • ios potentially missing compressed file info (88a628c)

    1.9.0 - 2025-01-11

  • feat(web-audio): optimize memory usage and streaming performance for web audio recording (#75) (7b93e12)

    1.8.0 - 2025-01-10

  • feat(audio): implement audio compression support (ff4e060)

    1.7.2 - 2025-01-07

  • fix(audio-stream): correct WAV header handling in web audio recording (9ba7de5)

    1.7.1 - 2025-01-07

  • update notification to avoid triggering new alerts (#71) (32dcfc5)

    1.7.0 - 2025-01-05

  • feat(playground): enhance app configuration and build setup for production deployment (#58) (929d443)
  • chore(expo-audio-stream): release @siteed/expo-audio-stream@1.6.1 (084e8ad)
  • fix(ios): improve audio resampling and duration tracking (#69) (51bef49)
  • handle paused state in stopRecording (#68) (15eac9b)
  • reset audio recording state properly on iOS and Android (#66) (61e9c26)
  • total size doesnt reset on new recording android (#64) (f7da57b)

    1.6.1 - 2024-12-11

  • chore(expo-audio-stream): remove git commit step from publish script (4a772ce)
  • chore: more publishing automation (3693021)
  • expo plugin files not published (b88c446)
  • chore(expo-audio-stream): improved build publish script (ad65a69)
  • fix(expo-audio-stream): missing package files (0901a1b)
  • feat(expo-audio-stream): opt in debug log for plugin config (03a0a71)
  • fix(expo-audio-stream): include all build + sourcemaps files in the package
  • fix(expo-audio-stream): missing plugin files (e56254a)
  • fix(expo-audio-stream): plugin deployment process and build system enhancements (#56) (63fbeb8)

    1.5.0 - 2024-12-10

  • UNPUBLISHED because of a bug in the build system

    1.4.0 - 2024-12-05

  • chore: remove unusded dependencies (ad81dd5)

    1.3.1 - 2024-12-05

  • feat(web): implement throttling and optimize event processing (#49) (da28765)

    [1.3.0] - 2024-11-28

    Added

  • refactor(permissions): standardize permission status response structure across platforms (#44) (7c9c800)
  • fix(web): add temporary worklet initialization patch for reanimated (2afcf02)
  • feat: update expo-modules-core (54ed5c5)
  • feat: latest expo fixes (9cc5ac3)
  • feat: latest expo sdk (258ef6c)

    [1.2.5] - 2024-11-12

    Added

  • docs(license): add MIT license to all packages (6 files changed)
  • fix(expo-audio-stream): return actual recording settings from startRecording on iOS #37

    [1.2.4] - 2024-11-05

    Changed

  • Android minimum audio interval set to 10ms.
  • plugin setup do not include 'notification' config by default to prevent ios version mismatch.

Fixed

  • Remove frequently firing log statements on web.

    [1.2.0] - 2024-10-24

    Added

  • Feature: keepAwake Continue recording when app is in background (default is true)
  • Feature: Customizable recording notifications for Android and iOS
    • Android: Rich notification support with live waveform visualization
    • Android: Configurable notification actions, colors, and priorities
    • iOS: Integration with media player

      [1.1.17] - 2024-10-21

      Added

  • Support bluetooth headset on ios
  • Fixes: android not reading custom interval audio update

    1.0.0 - 2024-04-01

    Added

  • Initial release of @siteed/expo-audio-stream.
  • Feature: Real-time audio streaming across iOS, Android, and web.
  • Feature: Configurable intervals for audio buffer receipt.
  • Feature: Automated microphone permissions setup in managed Expo projects.
  • Feature: Background audio recording on iOS.
  • Feature: Audio features extraction during recording.
  • Feature: Consistent WAV PCM recording format across all platforms.