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

Package detail

react-native-beep-player

jessee3201601.0.15TypeScript support: included

React Native Beep Player component for iOS and Android

react-native, beep, audio, metronome

readme

react-native-beep-player

A React Native module for precise, sample-accurate beep sound playback on iOS and Android.

Installation

1. Add Audio File

Place your beep.wav file in the appropriate location:

iOS:

  • Add to Xcode → Build Phases → Copy Bundle Resources

Android:

  • Place in android/app/src/main/assets/ folder

Expo Integration

Two approaches are available for using this module with Expo:

Option 1 — Bare Workflow or Prebuild

If you're willing to run:

npx expo prebuild

and have the native code available, you can:

Place beep.wav in:

  • iOS: ios/<ProjectName>/Resources/

  • Android: android/app/src/main/assets/

Pass just "beep.wav" from JS.

Native module will load it from the bundle.

Option 2 — Use Expo Asset to resolve the path

If you want to keep assets in assets/audio/clip_47.wav and still call the native module from JS, you can:

import { Asset } from 'expo-asset';
import BeepPlayer from 'react-native-beep-player';

async function startBeep() {
  const asset = Asset.fromModule(require('../assets/audio/clip_47.wav'));
  await asset.downloadAsync(); // ensure local file exists
  BeepPlayer.start(120, asset.localUri.replace('file://', ''));
}

asset.localUri will give you the absolute file path.

  • On iOS, it’s in the app’s cache directory.

  • On Android, same — native can read it directly.

2. Install Module

Install and link the module (manual linking required for React Native < 0.60):

npm install react-native-beep-player
cd ios && pod install && cd ..

Usage

Import the module in your React Native app:

import BeepPlayer from 'react-native-beep-player';

Start Beep Loop

Start a beep loop at a specific BPM:

// Start beep loop at 120 BPM
BeepPlayer.start(120, 'beep.wav');

Mute/Unmute

Toggle mute state while keeping the beep loop running:

// Stop beep loop
BeepPlayer.mute(true);
BeepPlayer.mute(false);

Stop Beep Loop

Stop the currently playing beep loop:

// Stop beep loop
BeepPlayer.stop();

API Reference

Methods

  • BeepPlayer.start(bpm, filename) - Start beep loop at specified BPM with audio file
  • BeepPlayer.stop() - Stop the currently playing beep loop

Parameters

  • bpm (number) - Beats per minute for the loop
  • filename (string) - Name of the audio file (e.g., 'beep.wav')