npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

lvbk-react-native-sound-player

v0.6.2

Published

Play or stream audio files in ReactNative on iOS/Android

Readme

react-native-sound-player

Play audio files, stream audio from URL, using ReactNative.

Installation

1. yarn or npm

    // yarn
    yarn add react-native-sound-player
    // or npm
    npm install --save react-native-sound-player

2. Link

    react-native link react-native-sound-player

Usage

Play sound with file name and type

  1. Add sound files to iOS/Android.
  • On iOS, drag and drop sound file into project in Xcode. Remember to check "Copy items if needed" option and "Add to targets".
  • On Android, put sound files in {project_root}/android/app/src/main/res/raw/. Just create the folder if it doesn't exist.
  1. Import the library and call the playSoundFile(fileName, fileType) function:
import SoundPlayer from 'react-native-sound-player'

try {
    // play the file tone.mp3
    SoundPlayer.playSoundFile('tone', 'mp3')
    // or play from url
    SoundPlayer.playUrl('https://example.com/music.mp3')
} catch (e) {
    console.log(`cannot play the sound file`, e)
}

Please note that the device can still go to sleep (screen goes off) while audio is playing. When this happens, the audio will stop playing. To prevent this, you can something like react-native-keep-awake.

Finished playing/loading event

...

// subscribe to the finished playing event in componentDidMount
componentDidMount() {
  SoundPlayer.onFinishedPlaying((success: boolean) => { // success is true when the sound is played
    console.log('finished playing', success)
  })
  SoundPlayer.onFinishedLoading(async (success: boolean) => {
    console.log('finished loading', success)
    // ready to `play()`, `getInfo()`, etc
    console.log(await SoundPlayer.getInfo())
  })
}

// unsubscribe when unmount
componentWillUnmount() {
  SoundPlayer.unmount()
}


}

...

Functions

playSound(fileName: string, fileType: string)

Play the sound file named fileName with file type fileType.

loadSoundFile(fileName: string, fileType: string)

Load the sound file named fileName with file type fileType, without playing it. This is useful when you want to play a large file, which can be slow to mount, and have precise control on when the sound is played. This can also be used in combination with getInfo() to get audio file duration without playing it. You should subscribe to the onFinishedLoading event to get notified when the file is loaded.

playUrl(url: string)

Play the audio from url. Supported formats are:

onFinishedPlaying(callback: (success: boolean) => any)

Subscribe to the "finished playing" event. The callback function is called whenever a file is finished playing.

onFinishedLoading(callback: (success: boolean) => any)

Subscribe to the "finished loading" event. The callback function is called whenever a file is finished loading, i.e. the file is ready to be play(), resume(), getInfo(), etc.

unmount()

Unsubscribe the "finished playing" and "finished loading" event.

play()

Play the loaded sound file. This function is the same as resume().

pause()

Pause the currently playing file.

resume()

Resume from pause and continue playing the same file. This function is the same as play().

stop()

Stop playing, call playSound(fileName: string, fileType: string) to start playing again.

setVolume(volume: number)

Set the volume of the current player. This does not change the volume of the device.

getInfo() => Promise<{currentTime: number, duration: number}>

Get the currentTime and duration of the currently mounted audio media. This function returns a promise which resolves to an Object containing currentTime and duration properties.

// Example
...
  playSong() {
    try {
      SoundPlayer.playSoundFile('engagementParty', 'm4a')
    } catch (e) {
      alert('Cannot play the file')
      console.log('cannot play the song file', e)
    }
  }

  async getInfo() { // You need the keyword `async`
    try {
      const info = await SoundPlayer.getInfo() // Also, you need to await this because it is async
      console.log('getInfo', info) // {duration: 12.416, currentTime: 7.691}
    } catch (e) {
      console.log('There is no song playing', e)
    }
  }

  onPressPlayButton() {
    this.playSong()
    this.getInfo()
  }

...