MockAudioElement
minimum implementation of HTML5 Audio events
Installation
$ npm install mock-audio-element-adv --save
class Audio
(WIP) an unreal audio elements. dispatch few events and change the limited properties.
; let audio= ;console// {// src: '',// loop: false,// autoplay: false,// paused: true,// ended: false,// error: null,// currentTime: 0,// duration: NaN// }
If audio.src
is true, to fetch the src.duration
via http.
let audio= 'http://static.edgy.black/fixture.mp3'// or ...let audio= audiosrc= 'http://static.edgy.black/fixture.mp3'audio
If audio.autoplay
is true(or .play()
), to playback(simulation) until src.duration
.
let audio= audiosrc= 'http://static.edgy.black/fixture.mp3'audioautoplay= trueaudiocurrentTime= 120 audioaudio// 120.104 false// 120.205 false// 120.308 false// 120.412 false// 120.514 false// 120.616 false// 120.63985 false// 120.63985 true
But, if the src.loop
is true, do repeat the playback.
let audio= audiosrc= fixtureURLaudioautoplay= trueaudiocurrentTime= 120audioloop= true audio// 120.1 false// 120.203 false// 120.304 false// 120.404 false// 120.507 false// 120.611 false// 120.64 false// 0.104 false// 0.209 false// ...
There is a possibility to dispatch an following events only.
- play
- loadstart
- durationchange
- loadedmetadata
- canplay
- playing
- canplaythrough
- timeupdate
- pause
- ended
In addition, only dispatch the event. nothing sends data.
audio
Additional methods
createWithAbortError
Create Audio class that has play method that return promise and rejects it when content is not downloaded or called pause
; const Audio = ;const audio = 'file.mp3';audio ; // Will log error with name 'AbortError'audio;
createWithNotAllowed
Create Audio class that has play method that return promise and rejects when action was not made by user.
; const Audio testkit = ;const audioByUser = 'file.mp3';audio;testkit;const audioByProgram = 'file.mp3';audio; // Will log error with name 'NotAllowedError'