more bugfixes
This commit is contained in:
parent
84fb83480a
commit
044e38ccf1
4 changed files with 18 additions and 15 deletions
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@euterpe.js/euterpe",
|
||||
"version": "1.0.5",
|
||||
"version": "1.0.8",
|
||||
"type": "module",
|
||||
"description": "Fully featured solution for playing music on the web. Support for local library, audio visuals and more!",
|
||||
"main": "./src/index.js",
|
||||
|
|
|
@ -54,7 +54,7 @@ class Euterpe extends Player.MusicPlayer {
|
|||
if (next_id == this.db.songs.length) reject(new Error("Won't go past the last song"))
|
||||
new_song = this.db.songs.find((song) => song.id == next_id)!
|
||||
}
|
||||
this.try_new_song_async(new_song.url.href).then(
|
||||
this.try_new_song_async(new_song.url.toString()).then(
|
||||
() => {
|
||||
this.try_play_async().then((s) => {
|
||||
if (this.current_song) this.played_history.push(this.current_song)
|
||||
|
@ -85,7 +85,7 @@ class Euterpe extends Player.MusicPlayer {
|
|||
if (next_id == this.db.songs.length) next_id = this.db.songs[0].id!
|
||||
new_song = this.db.songs.find((song) => song.id == next_id)!
|
||||
}
|
||||
this.try_new_song_async(new_song.url.href).then(
|
||||
this.try_new_song_async(new_song.url.toString()).then(
|
||||
() => {
|
||||
this.try_play_async().then((s) => {
|
||||
if (this.current_song) this.played_history.push(this.current_song)
|
||||
|
@ -114,7 +114,7 @@ class Euterpe extends Player.MusicPlayer {
|
|||
if (next_id == this.db.songs.length) next_id = this.db.songs[0].id!
|
||||
new_song = this.db.songs.find((song) => song.id == next_id)!
|
||||
}
|
||||
this.new_song(new_song.url.href)
|
||||
this.new_song(new_song.url.toString())
|
||||
this.play()
|
||||
if (this.current_song) this.played_history.push(this.current_song)
|
||||
this.current_song = new_song
|
||||
|
@ -135,7 +135,7 @@ class Euterpe extends Player.MusicPlayer {
|
|||
if (next_id == this.db.songs.length) throw new Error("Won't go past the last song")
|
||||
new_song = this.db.songs.find((song) => song.id == next_id)!
|
||||
}
|
||||
this.new_song(new_song.url.href)
|
||||
this.new_song(new_song.url.toString())
|
||||
this.play()
|
||||
if (this.current_song) this.played_history.push(this.current_song)
|
||||
this.current_song = new_song
|
||||
|
@ -149,7 +149,7 @@ class Euterpe extends Player.MusicPlayer {
|
|||
const new_song = this.db.songs.find((song) => song.id! == new_song_id)
|
||||
if (!new_song) reject(new Error(`No song with id "${new_song_id}" found`))
|
||||
else {
|
||||
this.try_new_song_async(new_song.url.href).then(
|
||||
this.try_new_song_async(new_song.url.toString()).then(
|
||||
() => {
|
||||
this.try_play_async().then((s) => {
|
||||
if (this.current_song) this.played_history.push(this.current_song)
|
||||
|
@ -171,7 +171,7 @@ class Euterpe extends Player.MusicPlayer {
|
|||
const new_song = this.db.songs.find((song) => song.id! == new_song_id)
|
||||
if (!new_song) reject(new Error(`No song with id "${new_song_id}" found`))
|
||||
else {
|
||||
this.try_new_song_async(new_song.url.href).then(
|
||||
this.try_new_song_async(new_song.url.toString()).then(
|
||||
() => {
|
||||
this.play_async().then((s) => {
|
||||
if (this.current_song) this.played_history.push(this.current_song)
|
||||
|
@ -192,7 +192,7 @@ class Euterpe extends Player.MusicPlayer {
|
|||
const new_song = this.db.songs.find((song) => song.id! == new_song_id)
|
||||
if (!new_song) throw new Error(`No song with id "${new_song_id}" found`)
|
||||
else {
|
||||
this.new_song(new_song.url.href)
|
||||
this.new_song(new_song.url.toString())
|
||||
this.play()
|
||||
if (this.current_song) this.played_history.push(this.current_song)
|
||||
this.current_song = new_song
|
||||
|
@ -216,7 +216,7 @@ class Euterpe extends Player.MusicPlayer {
|
|||
if (next_id == this.db.songs.length) reject(new Error("Won't roll backwards to last song"))
|
||||
new_song = this.db.songs.find((song) => song.id == next_id)!
|
||||
}
|
||||
this.try_new_song_async(new_song.url.href).then(
|
||||
this.try_new_song_async(new_song.url.toString()).then(
|
||||
() => {
|
||||
this.try_play_async().then((s) => {
|
||||
//if (this.current_song) this.played_history.push(this.current_song)
|
||||
|
@ -247,7 +247,7 @@ class Euterpe extends Player.MusicPlayer {
|
|||
if (next_id == -1) next_id = this.db.songs[this.db.songs.length - 1].id!
|
||||
new_song = this.db.songs.find((song) => song.id == next_id)!
|
||||
}
|
||||
this.try_new_song_async(new_song.url.href).then(
|
||||
this.try_new_song_async(new_song.url.toString()).then(
|
||||
() => {
|
||||
this.try_play_async().then((s) => {
|
||||
//if (this.current_song) this.played_history.push(this.current_song)
|
||||
|
@ -276,7 +276,7 @@ class Euterpe extends Player.MusicPlayer {
|
|||
if (next_id == this.db.songs.length) throw new Error("Won't go past the last song")
|
||||
new_song = this.db.songs.find((song) => song.id == next_id)!
|
||||
}
|
||||
this.new_song(new_song.url.href)
|
||||
this.new_song(new_song.url.toString())
|
||||
this.play()
|
||||
//if (this.current_song) this.played_history.push(this.current_song)
|
||||
this.current_song_id = new_song.id!
|
||||
|
@ -298,7 +298,7 @@ class Euterpe extends Player.MusicPlayer {
|
|||
if (next_id == this.db.songs.length) next_id = this.db.songs[this.db.songs.length].id!
|
||||
new_song = this.db.songs.find((song) => song.id == next_id)!
|
||||
}
|
||||
this.new_song(new_song.url.href)
|
||||
this.new_song(new_song.url.toString())
|
||||
this.play()
|
||||
//if (this.current_song) this.played_history.push(this.current_song)
|
||||
this.current_song_id = new_song.id!
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@euterpe.js/player",
|
||||
"version": "1.0.23",
|
||||
"version": "1.0.4",
|
||||
"type": "module",
|
||||
"description": "A simple, safe AudioContext web music player",
|
||||
"main": "./src/index.js",
|
||||
|
|
|
@ -162,7 +162,8 @@ export class MusicPlayer {
|
|||
try_play_toggle_async() {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (this.audio_context.state === "suspended" || this.audio_context.state === "closed") {
|
||||
reject("Context closed or suspended")
|
||||
this.audio_context.resume().then(undefined, (e) =>
|
||||
reject("Context closed or suspended" + e))
|
||||
}
|
||||
if (this.audio_element.paused) {
|
||||
this.audio_element.play().then((s) => {
|
||||
|
@ -224,7 +225,8 @@ export class MusicPlayer {
|
|||
return new Promise((resolve, reject) => {
|
||||
if (this.is_playing) reject(Error("Already playing"))
|
||||
if (this.audio_context.state === "suspended" || this.audio_context.state === "closed") {
|
||||
reject("Context closed or suspended")
|
||||
this.audio_context.resume().then(undefined, (e) =>
|
||||
reject("Context closed or suspended" + e))
|
||||
}
|
||||
this.audio_element.play().then((s) => {
|
||||
this.is_playing = true
|
||||
|
@ -276,6 +278,7 @@ export class MusicPlayer {
|
|||
try_new_song_async(path: string) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.audio_element.src = this.current_song_path = path
|
||||
this.current_song_duration = this.audio_element.duration
|
||||
//Found out today about this. Such a nice new way to mass remove event listeners!
|
||||
const controller = new AbortController();
|
||||
|
||||
|
|
Loading…
Reference in a new issue