wavesurfer.js 7.7.3 → 7.7.4

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.
@@ -17,16 +17,17 @@ declare class WebAudioPlayer extends EventEmitter<WebAudioPlayerEvents> {
17
17
  private audioContext;
18
18
  private gainNode;
19
19
  private bufferNode;
20
- private autoplay;
21
20
  private playStartTime;
22
21
  private playedDuration;
23
22
  private _muted;
24
23
  private _playbackRate;
24
+ private _duration;
25
25
  private buffer;
26
26
  currentSrc: string;
27
27
  paused: boolean;
28
28
  crossOrigin: string | null;
29
29
  seeking: boolean;
30
+ autoplay: boolean;
30
31
  constructor(audioContext?: AudioContext);
31
32
  /** Subscribe to an event. Returns an unsubscribe function. */
32
33
  addEventListener: <EventName extends keyof WebAudioPlayerEvents>(event: EventName, listener: (...args: WebAudioPlayerEvents[EventName]) => void, options?: {
@@ -48,6 +49,7 @@ declare class WebAudioPlayer extends EventEmitter<WebAudioPlayerEvents> {
48
49
  get currentTime(): number;
49
50
  set currentTime(value: number);
50
51
  get duration(): number;
52
+ set duration(value: number);
51
53
  get volume(): number;
52
54
  set volume(value: number);
53
55
  get muted(): boolean;
package/dist/webaudio.js CHANGED
@@ -15,16 +15,17 @@ class WebAudioPlayer extends EventEmitter {
15
15
  constructor(audioContext = new AudioContext()) {
16
16
  super();
17
17
  this.bufferNode = null;
18
- this.autoplay = false;
19
18
  this.playStartTime = 0;
20
19
  this.playedDuration = 0;
21
20
  this._muted = false;
22
21
  this._playbackRate = 1;
22
+ this._duration = undefined;
23
23
  this.buffer = null;
24
24
  this.currentSrc = '';
25
25
  this.paused = true;
26
26
  this.crossOrigin = null;
27
27
  this.seeking = false;
28
+ this.autoplay = false;
28
29
  /** Subscribe to an event. Returns an unsubscribe function. */
29
30
  this.addEventListener = this.on;
30
31
  /** Unsubscribe from an event */
@@ -43,6 +44,7 @@ class WebAudioPlayer extends EventEmitter {
43
44
  }
44
45
  set src(value) {
45
46
  this.currentSrc = value;
47
+ this._duration = undefined;
46
48
  if (!value) {
47
49
  this.buffer = null;
48
50
  this.emit('emptied');
@@ -77,7 +79,9 @@ class WebAudioPlayer extends EventEmitter {
77
79
  this.paused = false;
78
80
  (_a = this.bufferNode) === null || _a === void 0 ? void 0 : _a.disconnect();
79
81
  this.bufferNode = this.audioContext.createBufferSource();
80
- this.bufferNode.buffer = this.buffer;
82
+ if (this.buffer) {
83
+ this.bufferNode.buffer = this.buffer;
84
+ }
81
85
  this.bufferNode.playbackRate.value = this._playbackRate;
82
86
  this.bufferNode.connect(this.gainNode);
83
87
  let currentPos = this.playedDuration * this._playbackRate;
@@ -145,16 +149,19 @@ class WebAudioPlayer extends EventEmitter {
145
149
  return time * this._playbackRate;
146
150
  }
147
151
  set currentTime(value) {
148
- this.emit('seeking');
149
152
  const wasPlaying = !this.paused;
150
153
  wasPlaying && this._pause();
151
154
  this.playedDuration = value / this._playbackRate;
152
155
  wasPlaying && this._play();
156
+ this.emit('seeking');
153
157
  this.emit('timeupdate');
154
158
  }
155
159
  get duration() {
156
- var _a;
157
- return ((_a = this.buffer) === null || _a === void 0 ? void 0 : _a.duration) || 0;
160
+ var _a, _b;
161
+ return (_a = this._duration) !== null && _a !== void 0 ? _a : (((_b = this.buffer) === null || _b === void 0 ? void 0 : _b.duration) || 0);
162
+ }
163
+ set duration(value) {
164
+ this._duration = value;
158
165
  }
159
166
  get volume() {
160
167
  return this.gainNode.gain.value;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wavesurfer.js",
3
- "version": "7.7.3",
3
+ "version": "7.7.4",
4
4
  "license": "BSD-3-Clause",
5
5
  "author": "katspaugh",
6
6
  "description": "Audio waveform player",