32 lines
1.0 KiB
JavaScript
32 lines
1.0 KiB
JavaScript
export default class AudioTrack {
|
|
constructor(track, userToken) {
|
|
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.userToken = userToken
|
|
}
|
|
|
|
get fullContentUrl() {
|
|
if (!this.contentUrl || this.contentUrl.startsWith('http')) return this.contentUrl
|
|
|
|
if (process.env.NODE_ENV === 'development') {
|
|
return `${process.env.serverUrl}${this.contentUrl}?token=${this.userToken}`
|
|
}
|
|
return `${window.location.origin}${this.contentUrl}?token=${this.userToken}`
|
|
}
|
|
|
|
get relativeContentUrl() {
|
|
if (!this.contentUrl || this.contentUrl.startsWith('http')) return this.contentUrl
|
|
|
|
if (process.env.NODE_ENV === 'development') {
|
|
return `${process.env.serverUrl}${this.contentUrl}?token=${this.userToken}`
|
|
}
|
|
|
|
return this.contentUrl + `?token=${this.userToken}`
|
|
}
|
|
} |