mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-05-24 01:13:00 -04:00
37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
export default class AudioTrack {
|
|
constructor(track, sessionId, userToken, routerBasePath) {
|
|
this.index = track.index || 0
|
|
this.startOffset = track.startOffset || 0 // Total time of all previous tracks
|
|
this.duration = track.duration || 0
|
|
this.title = track.title || ''
|
|
this.contentUrl = track.contentUrl || null
|
|
this.mimeType = track.mimeType
|
|
this.metadata = track.metadata || {}
|
|
|
|
this.sessionId = sessionId
|
|
this.routerBasePath = routerBasePath || ''
|
|
if (this.contentUrl?.startsWith('/hls')) {
|
|
this.sessionTrackUrl = `${this.contentUrl}?token=${userToken}`
|
|
} else {
|
|
this.sessionTrackUrl = `/public/session/${sessionId}/track/${this.index}`
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Used for CastPlayer
|
|
*/
|
|
get fullContentUrl() {
|
|
if (process.env.NODE_ENV === 'development') {
|
|
return `${process.env.serverUrl}${this.sessionTrackUrl}`
|
|
}
|
|
return `${window.location.origin}${this.routerBasePath}${this.sessionTrackUrl}`
|
|
}
|
|
|
|
/**
|
|
* Used for LocalPlayer
|
|
*/
|
|
get relativeContentUrl() {
|
|
return `${this.routerBasePath}${this.sessionTrackUrl}`
|
|
}
|
|
}
|