🐛 fix: Queue not playing next song

This commit is contained in:
2024-07-05 10:50:22 +07:00
parent 765b3c64f0
commit 3f00ec31b7
4 changed files with 28 additions and 3 deletions

View File

@@ -4,7 +4,8 @@
"description": "",
"scripts": {
"build": "tsup ./src",
"example:test": "tsup ./src && tsx ./example/test.ts",
"example:discord": "tsup ./src && tsx ./example/discord.ts",
"example:speaker": "tsup ./src && tsx ./example/speaker.ts",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],

View File

@@ -49,6 +49,12 @@ export class Player {
this.playerEvent.emit("play", information);
}
public startCurrentStream() {
if (this._stream) {
this._stream.start();
}
}
public endCurrentStream() {
if (this._stream) {
this._stream.destroy();

View File

@@ -6,8 +6,19 @@ export class YtDlpProvider extends Provider {
public ytDlpWrap = new YTDlpWrap();
public canPlay(url: string) {
// TODO: Implement this
return true;
return this.checkUrl(url);
}
private checkUrl(url: string) {
// https://www.youtube.com/watch?v=
// https://youtu.be/
if (
url.startsWith("https://www.youtube.com/watch?v=") ||
url.startsWith("https://youtu.be/")
)
return true;
return false;
}
public async getInformation(url: string) {

View File

@@ -19,6 +19,7 @@ export class SeekableStream {
private firstTick: boolean = true;
private destroyed: boolean = false;
private event: EventEmitter = new EventEmitter();
private started: boolean = false;
private bytesReceived: number = 0;
private bytesRead: number = 0;
@@ -54,6 +55,10 @@ export class SeekableStream {
//if (seekTime !== 0) this.seek();
}
public start() {
this.started = true;
}
private async tick(seekTime?: number) {
if (this.destroyed) {
console.debug(
@@ -152,6 +157,8 @@ export class SeekableStream {
return;
}
if (!this.started) return;
const isBufferSufficient =
this.stream.readableLength >= this.bytesPerRequestLimit;