apm-react-audio-player
v1.0.22
Published
This is a light react audio player that is wrapped around a HTML5 audio tag, created for use on American Public Media and Minnesota Public Radio's websites.
Downloads
135
Readme
apm-react-audio-player
This is a light react audio player that is wrapped around a HTML5 audio tag, created for use on American Public Media and Minnesota Public Radio's websites.
The library was designed to add a audio player to a body of a story which will not trigger the static audio player.
Table of Contents
[License] (#License)
Dependencies
As of version 1.0.0, this library has no dependencies for usage.
Installation
There are several ways to install APM Player on your site.
NPM
npm install apm-react-audio-player
or to use yarn:
YARN
yarn add apm-react-audio-player
Importing
ES6 Import
The easiest way to include this in modern javascript, assuming you are using something like and Babel, is to use an import
statement.
The library uses named exports for all modules.
To import the player module:
import { ReactAudioPlayerInner, useAudioPlayer } from 'apm-react-audio-player';
Usage
Props
See the audio tag documentation for detailed explanations of these attributes.
Prop | Type | Default | Notes
--- | --- | --- | ---
title
| String | empty string | The title of the audio track
audioSrc
| String | empty string | The source URL of the audio file
description
| String | empty string | The description of the audio track
audioPlayerRef
| Object | empty object | A ref object for the audio player
progressBarRef
| Object | empty object | A ref object for the progress bar
onLoadedMetadata
| Function | --- | A function to handle the loadedmetadata
event
togglePlaying
| Function | --- | A function to toggle the playing state
isPlaying
| Boolean | false | Whether the audio is currently playing
isMuted
| Boolean | false | Whether the audio is currently muted
toggleMute
| Function | --- | A function to toggle the mute state
volumeControl
| Function | --- | A function to control the volume
currentTime
| Number | null | The current time of the audio track
duration
| Number | null | The duration of the audio track
rewindControl
| Function | --- | A function to rewind the audio track
forwardControl
| Function | --- | A function to fast forward the audio track
changePlayerCurrentTime
| Function | --- | A function to change the current time of the audio track
calculateTime
| Function | --- | A function to calculate the time for the audio track
formatCalculateTime
| Function | --- | A function to format the calculated time
playBtnClass
| String | empty string | The CSS class for the play button
customStyles
| Object | --- | Custom styles for the audio player
customHtml
| JSX.Element | <></>
| Custom HTML to be rendered inside the player
Example
import { ReactAudioPlayerInner, useAudioPlayer } from 'apm-react-audio-player';
const Example = () => {
const audioPlayerRef = React.useRef();
const progressBarRef = React.useRef();
const {
onLoadedMetadata,
calculateTime,
volumeControl,
togglePlaying,
toggleMute,
isMuted,
changePlayerCurrentTime,
play,
isPlaying,
isFinishedPlaying,
currentTime,
duration,
formatCalculateTime,
rewindControl,
forwardControl
} = useAudioPlayer(audioPlayerRef, progressBarRef);
return (
<ReactAudioPlayerInner
title={'MPR NEWS'}
audioSrc={'https://play.publicradio.org/web/o/minnesota/podcasts/art_hounds/2024/06/26/arthounds_art-hounds-franconia_20240626_64.mp3'}
description={'description'}
playBtnClass="player-btn player-btn-playpause js-player-play"
audioPlayerRef={audioPlayerRef}
progressBarRef={progressBarRef}
onLoadedMetadata={onLoadedMetadata}
play={play}
isPlaying={isPlaying}
togglePlaying={togglePlaying}
isMuted={isMuted}
currentTime={currentTime}
duration={duration}
isAudioFinished={isFinishedPlaying}
toggleMute={toggleMute}
volumeCtrl={volumeControl}
changePlayerCurrentTime={changePlayerCurrentTime}
rewindControl={rewindControl}
forwardControl={forwardControl}
calculateTime={calculateTime}
formatCalculateTime={formatCalculateTime}
customHtml={<></>}
/>
)
}
Publishing
- Ensure every merge request and/or change to
apm-react-audio-player
should always come with an updated version (ex. 1.0.17 to 1.0.18) in the package.json. - Once the changes is on Main branch, locally run:
git pull main
yarn run build
ornpm run build
yarn publish
ornpm publish
License
MIT © Phanx091