wavesurfer.js 7.0.0-alpha.4 → 7.0.0-alpha.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +64 -17
- package/dist/base-plugin.d.ts +14 -5
- package/dist/base-plugin.js +5 -1
- package/dist/decoder.d.ts +8 -10
- package/dist/decoder.js +37 -44
- package/dist/event-emitter.d.ts +16 -10
- package/dist/event-emitter.js +38 -16
- package/dist/fetcher.js +2 -13
- package/dist/legacy-adapter.d.ts +7 -0
- package/dist/legacy-adapter.js +15 -0
- package/dist/player.d.ts +32 -11
- package/dist/player.js +55 -39
- package/dist/plugins/envelope.d.ts +57 -0
- package/dist/plugins/envelope.js +305 -0
- package/dist/plugins/envelope.min.js +1 -0
- package/dist/plugins/minimap.d.ts +34 -0
- package/dist/plugins/minimap.js +99 -0
- package/dist/plugins/minimap.min.js +1 -0
- package/dist/plugins/multitrack.d.ts +117 -0
- package/dist/plugins/multitrack.js +506 -0
- package/dist/plugins/multitrack.min.js +1 -0
- package/dist/plugins/record.d.ts +26 -0
- package/dist/plugins/record.js +125 -0
- package/dist/plugins/record.min.js +1 -0
- package/dist/plugins/regions.d.ts +88 -41
- package/dist/plugins/regions.js +365 -170
- package/dist/plugins/regions.min.js +1 -0
- package/dist/plugins/spectrogram.d.ts +24 -0
- package/dist/plugins/spectrogram.js +165 -0
- package/dist/plugins/timeline.d.ts +41 -0
- package/dist/plugins/timeline.js +135 -0
- package/dist/plugins/timeline.min.js +1 -0
- package/dist/renderer.d.ts +26 -12
- package/dist/renderer.js +212 -157
- package/dist/timer.d.ts +1 -1
- package/dist/wavesurfer.d.ts +136 -0
- package/dist/wavesurfer.js +213 -0
- package/dist/wavesurfer.min.js +1 -1
- package/package.json +49 -24
- package/dist/index.d.ts +0 -104
- package/dist/index.js +0 -188
- package/dist/player-webaudio.d.ts +0 -8
- package/dist/player-webaudio.js +0 -32
- package/dist/react/useWavesurfer.d.ts +0 -5
- package/dist/react/useWavesurfer.js +0 -20
- package/dist/wavesurfer.Regions.min.js +0 -1
package/dist/player-webaudio.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import Player from './player.js';
|
|
2
|
-
class WebAudioPlayer extends Player {
|
|
3
|
-
constructor() {
|
|
4
|
-
super(...arguments);
|
|
5
|
-
this.audioCtx = null;
|
|
6
|
-
this.sourceNode = null;
|
|
7
|
-
}
|
|
8
|
-
destroy() {
|
|
9
|
-
var _a, _b;
|
|
10
|
-
(_a = this.sourceNode) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
11
|
-
this.sourceNode = null;
|
|
12
|
-
(_b = this.audioCtx) === null || _b === void 0 ? void 0 : _b.close();
|
|
13
|
-
this.audioCtx = null;
|
|
14
|
-
super.destroy();
|
|
15
|
-
}
|
|
16
|
-
loadUrl(url) {
|
|
17
|
-
super.loadUrl(url);
|
|
18
|
-
if (!this.audioCtx) {
|
|
19
|
-
this.audioCtx = new AudioContext({
|
|
20
|
-
latencyHint: 'playback',
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
if (this.sourceNode) {
|
|
24
|
-
this.sourceNode.disconnect();
|
|
25
|
-
}
|
|
26
|
-
if (this.media) {
|
|
27
|
-
this.sourceNode = this.audioCtx.createMediaElementSource(this.media);
|
|
28
|
-
this.sourceNode.connect(this.audioCtx.destination);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
export default WebAudioPlayer;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import WaveSurfer from '../index.js';
|
|
3
|
-
const { useEffect, useState } = React;
|
|
4
|
-
// A React hook to use WaveSurfer
|
|
5
|
-
export const useWavesurfer = (containerRef, options) => {
|
|
6
|
-
const [wavesurfer, setWavesurfer] = useState(null);
|
|
7
|
-
// Initialize wavesurfer when the container mounts
|
|
8
|
-
// or any of the props change
|
|
9
|
-
useEffect(() => {
|
|
10
|
-
if (!containerRef.current)
|
|
11
|
-
return;
|
|
12
|
-
const ws = WaveSurfer.create(Object.assign(Object.assign({}, options), { container: containerRef.current }));
|
|
13
|
-
setWavesurfer(ws);
|
|
14
|
-
return () => {
|
|
15
|
-
ws.destroy();
|
|
16
|
-
};
|
|
17
|
-
}, [options, containerRef]);
|
|
18
|
-
return wavesurfer;
|
|
19
|
-
};
|
|
20
|
-
export default useWavesurfer;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Regions=t():e.Regions=t()}(WaveSurfer,(()=>(()=>{"use strict";var e={d:(t,i)=>{for(var n in i)e.o(i,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:i[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},t={};e.d(t,{default:()=>r});const i=class{constructor(){this.eventTarget=new EventTarget}emit(e,t){const i=new CustomEvent(String(e),{detail:t});this.eventTarget.dispatchEvent(i)}on(e,t,i){const n=e=>{e instanceof CustomEvent&&t(e.detail)},s=String(e);return this.eventTarget.addEventListener(s,n,{once:i}),()=>this.eventTarget.removeEventListener(s,n)}once(e,t){return this.on(e,t,!0)}},n=class extends i{constructor(e){super(),this.subscriptions=[],this.wavesurfer=e.wavesurfer,this.container=e.container}destroy(){this.subscriptions.forEach((e=>e()))}},s=(e,t)=>{for(const i in t)e.style[i]=t[i]||""},o=(e,t)=>{const i=document.createElement(e);return s(i,t),i},r=class extends n{constructor(e){super(e),this.dragStart=NaN,this.regions=[],this.createdRegion=null,this.modifiedRegion=null,this.isResizingLeft=!1,this.isMoving=!1,this.handleMouseDown=e=>{this.dragStart=e.clientX-this.container.getBoundingClientRect().left},this.handleMouseMove=e=>{const t=e.clientX-this.container.getBoundingClientRect().left;if(this.modifiedRegion&&this.isMoving)return this.moveRegion(this.modifiedRegion,t-this.dragStart),void(this.dragStart=t);if(this.modifiedRegion)this.updateRegion(this.modifiedRegion,this.isResizingLeft?t:void 0,this.isResizingLeft?void 0:t);else if(!isNaN(this.dragStart)){const t=e.clientX-this.wrapper.getBoundingClientRect().left;t-this.dragStart>=10&&(this.createdRegion?this.updateRegion(this.createdRegion,this.dragStart,t):(this.container.style.pointerEvents="none",this.createdRegion=this.createRegion(this.dragStart,t)))}},this.handleMouseUp=()=>{this.createdRegion&&(this.addRegion(this.createdRegion),this.createdRegion=null),this.modifiedRegion=null,this.isMoving=!1,this.dragStart=NaN,this.container.style.pointerEvents=""},this.wrapper=this.initWrapper();const t=this.wavesurfer.on("decode",(()=>{this.container.appendChild(this.wrapper),t()}));this.subscriptions.push(t),this.container.addEventListener("mousedown",this.handleMouseDown),document.addEventListener("mousemove",this.handleMouseMove),document.addEventListener("mouseup",this.handleMouseUp)}destroy(){this.container.removeEventListener("mousedown",this.handleMouseDown),document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("mouseup",this.handleMouseUp,!0),this.wrapper.remove(),super.destroy()}initWrapper(){return o("div",{position:"absolute",top:"0",left:"0",width:"100%",height:"100%",zIndex:"3",pointerEvents:"none"})}createRegionElement(e,t,i=""){const n=o("div",{position:"absolute",left:`${e}px`,width:t-e+"px",height:"100%",backgroundColor:"rgba(0, 0, 0, 0.1)",transition:"background-color 0.2s ease",cursor:"move",pointerEvents:"all"});n.title=i;const r=o("div",{position:"absolute",left:"0",width:"6px",height:"100%",borderLeft:"2px solid rgba(0, 0, 0, 0.5)",borderRadius:"2px 0 0 2px",cursor:"ew-resize",pointerEvents:"all"});n.appendChild(r);const d=r.cloneNode();return s(d,{left:"",right:"0",borderLeft:"",borderRight:"2px solid rgba(0, 0, 0, 0.5)",borderRadius:"0 2px 2px 0"}),n.appendChild(d),r.addEventListener("mousedown",(e=>{e.stopPropagation(),this.modifiedRegion=this.regions.find((e=>e.element===n))||null,this.isResizingLeft=!0,this.isMoving=!1})),d.addEventListener("mousedown",(e=>{e.stopPropagation(),this.modifiedRegion=this.regions.find((e=>e.element===n))||null,this.isResizingLeft=!1,this.isMoving=!1})),n.addEventListener("mousedown",(()=>{this.modifiedRegion=this.regions.find((e=>e.element===n))||null,this.isMoving=!0})),n.addEventListener("click",(()=>{const e=this.regions.find((e=>e.element===n));e&&this.emit("region-clicked",{region:e})})),this.wrapper.appendChild(n),n}createRegion(e,t,i=""){const n=this.wavesurfer.getDuration(),s=this.wrapper.clientWidth;return{element:this.createRegionElement(e,t,i),start:e,end:t,startTime:e/s*n,endTime:t/s*n,title:i}}addRegion(e){this.regions.push(e),this.emit("region-created",{region:e})}updateRegion(e,t,i){null!=t&&(e.start=null!=t?t:e.start,e.element.style.left=`${e.start}px`,e.startTime=t/this.wrapper.clientWidth*this.wavesurfer.getDuration()),null!=i&&(e.end=i,e.element.style.width=e.end-e.start+"px",e.endTime=i/this.wrapper.clientWidth*this.wavesurfer.getDuration()),this.emit("region-updated",{region:e})}moveRegion(e,t){this.updateRegion(e,e.start+t,e.end+t)}add(e,t,i=""){const n=this.wavesurfer.getDuration(),s=this.wrapper.clientWidth,o=e/n*s,r=t/n*s,d=this.createRegion(o,r,i);return this.addRegion(d),d}setRegionColor(e,t){e.element.style.backgroundColor=t}};return t.default})()));
|