vue-waveform
Version:
waveform audio player wavesurfer -waveform js html 音频audio波形图
42 lines (36 loc) • 962 B
JavaScript
// import bus from './event'
export default class Mse {
constructor() {
this.initMediaSource()
}
initMediaSource() {
let dom = new Audio()
this.dom = dom
this.mediaSource = new MediaSource()
/*this.dom.addEventListener('timeupdate', (e) => {
console.log(`timeupdate = ${this.dom.currentTime}`)
})
this.dom.addEventListener('play', (e) => {
bus.$emit('play')
})*/
dom.src = window.URL.createObjectURL(this.mediaSource)
this.mediaSource.addEventListener('sourceopen', this.onSourceOpen.bind(this))
}
onSourceOpen() {
this.sourceBuffer = this.mediaSource.addSourceBuffer('audio/aac')
}
play() {
this.dom && (this.dom.play())
}
pause() {
this.dom && (this.dom.pause())
}
appendBuffer (buffer) {
this.sourceBuffer.appendBuffer(buffer)
}
stop() {
this.dom = null
this.mediaSource = null
this.initMediaSource()
}
}