All Projects → kyo504 → React Native Audio Streaming Player

kyo504 / React Native Audio Streaming Player

Licence: mit
An audio steaming player for React Native

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to React Native Audio Streaming Player

Snapcast
Synchronous multiroom audio player
Stars: ✭ 4,028 (+9970%)
Mutual labels:  audio-player
Autopiano
自由钢琴 🎹 AutoPiano ( https://www.autopiano.cn ) Simple & Elegant Piano Online
Stars: ✭ 5,117 (+12692.5%)
Mutual labels:  audio-player
Waveform Playlist
Multitrack Web Audio editor and player with canvas waveform preview. Set cues, fades and shift multiple tracks in time. Record audio tracks or provide audio annotations. Export your mix to AudioBuffer or WAV! Project inspired by Audacity.
Stars: ✭ 919 (+2197.5%)
Mutual labels:  audio-player
Androidwithkotlin
🚀 These are android sample projects which are written in Kotlin. It covers video streaming, mp3 player, sqlite, location services, custom camera, o-notifications, simple compass etc.
Stars: ✭ 447 (+1017.5%)
Mutual labels:  audio-player
Tau
Flutter plugin for sound. Audio recorder and player.
Stars: ✭ 527 (+1217.5%)
Mutual labels:  audio-player
Lofi
🎵🔉 A mini Spotify player with WebGL visualizations.
Stars: ✭ 583 (+1357.5%)
Mutual labels:  audio-player
React Music Player
React,TS的音乐播放插件,歌词同步功能,适配PC和移动端;A music player build with react and typescript for mobile and PC
Stars: ✭ 357 (+792.5%)
Mutual labels:  audio-player
Strawberry
🍓 Strawberry Music Player
Stars: ✭ 972 (+2330%)
Mutual labels:  audio-player
Vue Plyr
A Vue component for the plyr (https://github.com/sampotts/plyr) video & audio player.
Stars: ✭ 531 (+1227.5%)
Mutual labels:  audio-player
Kaudiorecorder
İOS Audio Record & Play Helper Class 🔊
Stars: ✭ 22 (-45%)
Mutual labels:  audio-player
Super Simple Raspberry Pi Audio Receiver Install
Super Easy installation to make your Raspberry Pi an Audio Receiver
Stars: ✭ 448 (+1020%)
Mutual labels:  audio-player
Xr3player
🎧 🎼 Advanced JavaFX Media Player
Stars: ✭ 472 (+1080%)
Mutual labels:  audio-player
Mpv.net
🎞 mpv.net is a modern media player for Windows that works just like mpv.
Stars: ✭ 737 (+1742.5%)
Mutual labels:  audio-player
Skplayer
🎵 A simple & beautiful HTML5 music player
Stars: ✭ 437 (+992.5%)
Mutual labels:  audio-player
Play
Play audio files from terminal.
Stars: ✭ 12 (-70%)
Mutual labels:  audio-player
Canaree Music Player
Complete music player published in the Play Store. Heavily relies on Dagger, kotlin coroutines and Clean architecture.
Stars: ✭ 371 (+827.5%)
Mutual labels:  audio-player
Celluloid
A simple GTK+ frontend for mpv
Stars: ✭ 541 (+1252.5%)
Mutual labels:  audio-player
Taliesin
Lightweight audio streaming server
Stars: ✭ 35 (-12.5%)
Mutual labels:  audio-player
React Native Streaming Audio Player
Streaming audio player for both iOS and android
Stars: ✭ 33 (-17.5%)
Mutual labels:  audio-player
Euterpe
Real-time Audio-to-audio Karaoke Generation System for Monaural Music
Stars: ✭ 19 (-52.5%)
Mutual labels:  audio-player

react-native-streaming-audio-player npm version

Streaming audio player for iOS + Android

Features

  • Play remote streaming audio source
  • Handle audio focus for...
    • incoming and outgoing calls
    • switching application contexts
  • Control audio from notification and lock screen (Android)
  • Control audio from control center and lock screen (iOS)
  • Control audio from headsets

Installation

First, install the library from npm:

npm install react-native-streaming-audio-player --save

Second, link the native dependencies.

react-native link react-native-streaming-audio-player

Running a sample app

In the Example directory:

cd Examples
npm install
react-native run-ios or run-android

Usage

import Player from 'react-native-streaming-audio-player';

export default class Example extends Component {
  constructor(props) {
    super(props);
    this.state = { currentTime: 0 }
    this.onUpdatePosition = this.onUpdatePosition.bind(this);
  }

  onPlay() {
    Player.play(source.url, {
      title: source,
      artist: source.artist,
      album_art_uri: source.arworkUrl,
    });
  }

  onPause() {
    Player.pause();
  }

  render() {
    return (
      <View style={styles.container}>
        <View style={{ flexDirection: 'row', alignSelf: 'stretch', justifyContent: 'space-around' }}>
          <Button
            title='Play'
            onPress={() => this.onPlay()}
            color='red'
          />
          <Button
            title='Pause'
            onPress={() => this.onPause()}
            color='red'
          />
        </View>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
  },
});

API and Configuration

Player Control

  • play(url: string, metadata: object)
    • metadata.title
    • metadata.artist
    • metadata.album_art_uri
  • pause()
  • stop()

Callbacks

  • onPlaybackStateChanged
  • onUpdatePosition

PlaybackState

  • NONE
  • PLAYING
  • BUFFERING
  • PAUSED
  • STOPPED
  • COMPLETED

PlayerAction

  • Play
  • Pause
  • SkipToNext
  • SkipToPrevious

Roadmap

  • [ ] Unit tests
  • [ ] Clean up

Contribute

License

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].