react-native-audio-polyfill

html Audio class polyfill for react-native. You can use Audio for android,ios without modification to browser code.

Usage

import Audio from 'react-native-audio-polyfill'

const audio1 = new Audio()

audio1.onload = () => {
  console.log('audio loaded')
  audio1.play()
}

Play local files

audio1.addEventListener('loadeddata', () => audio1.play())
audio1.addEventListener('error', err => console.log('audio error:', err)
audio1.src = './test.mp3'
audio1.load()

Play remote files

audio1.addEventListener('loadeddata', () => audio1.play())
audio1.addEventListener('error', err => console.log('audio error:', err)
audio1.src = 'http://www.music.helsinki.fi/tmt/opetus/uusmedia/esim/a2002011001-e02-128k.mp3'
audio1.load()

Play assets in native

import asset1 from './test.mp3'

audio1.addEventListener('loadeddata', () => audio1.play())
audio1.addEventListener('error', err => console.log('audio error:', err)
audio1.src = asset1
audio1.load()

Install

npm install react-native-audio-polyfill

Add it to your project

react-native link

Coverage

functions

  •  addTextTrack()
  •  canPlayType()
  •  load()
  •  play()
  •  pause()

properties

  •  audioTracks
  •  autoplay
  •  buffered // only android
  •  controller
  •  controls
  •  crossOrigin
  •  currentSrc
  •  currentTime
  •  defaultMuted
  •  defaultPlaybackRate
  •  duration
  •  ended
  •  error
  •  loop
  •  mediaGroup
  •  muted
  •  networkState
  •  paused
  •  playbackRate
  •  played
  •  preload
  •  readyState
  •  seekable
  •  seeking
  •  src
  •  startDate
  •  textTracks
  •  videoTracks
  •  volume

event

  •  abort
  •  canplay
  •  canplaythrough
  •  durationchange
  •  emptied
  •  ended
  •  error
  •  loadeddata
  •  loadedmetadata
  •  loadstart
  •  pause
  •  play
  •  playing
  •  progress // only android
  •  ratechange
  •  seeked
  •  seeking
  •  stalled
  •  suspend
  •  timeupdate
  •  volumechange
  •  waiting

TODO

  • canPlayType support.
  • Create audio component with controls=true.
  • Buffering progress for ios.

License

MIT