hopefully fixed internal buffering of audio streams
This commit is contained in:
parent
087698df8c
commit
80179e4bfa
1 changed files with 11 additions and 6 deletions
|
@ -47,7 +47,10 @@ class Player extends EventEmitter {
|
||||||
if (this.isPlaying() === false) {
|
if (this.isPlaying() === false) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.playFromBuffer();
|
if (this.buffer.size < this.buffer.limit) {
|
||||||
|
logger.debug('fell below buffer limit of ' + this.buffer.limit + ' bytes, resuming read stream...');
|
||||||
|
this.stream.resume();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
this.buffer.limit = config?.buffer?.limit;
|
this.buffer.limit = config?.buffer?.limit;
|
||||||
if (isNaN(this.buffer.limit) || this.buffer.limit < this.buffer.threshold) {
|
if (isNaN(this.buffer.limit) || this.buffer.limit < this.buffer.threshold) {
|
||||||
|
@ -68,6 +71,7 @@ class Player extends EventEmitter {
|
||||||
if (this.buffer.size >= this.buffer.limit) {
|
if (this.buffer.size >= this.buffer.limit) {
|
||||||
logger.debug('buffer limit of ' + this.buffer.limit + ' bytes reached, pausing read stream...');
|
logger.debug('buffer limit of ' + this.buffer.limit + ' bytes reached, pausing read stream...');
|
||||||
this.stream.pause();
|
this.stream.pause();
|
||||||
|
this.playFromBuffer();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -79,12 +83,13 @@ class Player extends EventEmitter {
|
||||||
|
|
||||||
playFromBuffer() {
|
playFromBuffer() {
|
||||||
const tmp = this.buffer.elements[0];
|
const tmp = this.buffer.elements[0];
|
||||||
|
if (tmp === undefined) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
this.buffer.elements.shift();
|
this.buffer.elements.shift();
|
||||||
this.buffer.size -= tmp.length;
|
this.buffer.size -= tmp.length;
|
||||||
this.speaker.write(tmp);
|
if (this.speaker.write(tmp) === false) {
|
||||||
if (this.buffer.size < this.buffer.limit) {
|
this.stream.pause();
|
||||||
logger.debug('fell below buffer limit of ' + this.buffer.limit + ' bytes, resuming read stream...');
|
|
||||||
this.stream.resume();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue