mock-audio-element
v0.0.0-beta.2
Published
minimum implementation of HTML5 Audio events
Downloads
19
Readme
MockAudioElement
minimum implementation of HTML5 Audio events
Installation
$ npm install mock-audio-element --save
class Audio
(WIP) an unreal audio elements. dispatch few events and change the limited properties.
import Audio from 'mock-audio-element'
let audio= new Audio
console.log(audio)
// {
// 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= new Audio('http://static.edgy.black/fixture.mp3')
// or ...
let audio= new Audio
audio.src= 'http://static.edgy.black/fixture.mp3'
audio.addEventListener('canplaythrough',()=>{
console.log(audio.duration) // 120.63985
})
If audio.autoplay
is true(or .play()
), to playback(simulation) until src.duration
.
let audio= new Audio
audio.src= 'http://static.edgy.black/fixture.mp3'
audio.autoplay= true
audio.currentTime= 120
audio.addEventListener('timeupdate',()=>{
console.log(audio.currentTime,audio.paused)
})
audio.addEventListener('ended',()=>{
console.log(audio.currentTime,audio.paused)
})
// 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= new Audio
audio.src= fixtureURL
audio.autoplay= true
audio.currentTime= 120
audio.loop= true
audio.addEventListener('timeupdate',()=>{
console.log(audio.currentTime,audio.paused)
})
// 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.
- error
- canplaythrough
- play
- pause
- timeupdate
- ended
In addition, only dispatch the event. nothing sends data.
audio.addEventListener('timeupdate',(data)=>{
console.log(data)// undefined
})