2022-02-22 17:33:55 -06:00
|
|
|
export default class AudioTrack {
|
2025-05-06 17:28:19 -05:00
|
|
|
constructor(track, sessionId, routerBasePath) {
|
2022-02-22 17:33:55 -06:00
|
|
|
this.index = track.index || 0
|
|
|
|
this.startOffset = track.startOffset || 0 // Total time of all previous tracks
|
|
|
|
this.duration = track.duration || 0
|
2022-03-17 19:10:47 -05:00
|
|
|
this.title = track.title || ''
|
2022-02-22 17:33:55 -06:00
|
|
|
this.contentUrl = track.contentUrl || null
|
|
|
|
this.mimeType = track.mimeType
|
2022-04-03 16:01:59 -05:00
|
|
|
this.metadata = track.metadata || {}
|
2022-03-17 19:10:47 -05:00
|
|
|
|
2025-05-05 17:00:43 -05:00
|
|
|
this.sessionId = sessionId
|
2025-02-01 16:47:36 -06:00
|
|
|
this.routerBasePath = routerBasePath || ''
|
2025-05-05 17:07:51 -05:00
|
|
|
if (this.contentUrl?.startsWith('/hls')) {
|
2025-05-06 17:28:19 -05:00
|
|
|
this.sessionTrackUrl = this.contentUrl
|
2025-05-05 17:07:51 -05:00
|
|
|
} else {
|
|
|
|
this.sessionTrackUrl = `/public/session/${sessionId}/track/${this.index}`
|
|
|
|
}
|
2022-02-22 17:33:55 -06:00
|
|
|
}
|
|
|
|
|
2025-02-01 16:47:36 -06:00
|
|
|
/**
|
|
|
|
* Used for CastPlayer
|
|
|
|
*/
|
2022-02-22 17:33:55 -06:00
|
|
|
get fullContentUrl() {
|
|
|
|
if (process.env.NODE_ENV === 'development') {
|
2025-05-05 17:00:43 -05:00
|
|
|
return `${process.env.serverUrl}${this.sessionTrackUrl}`
|
2022-02-22 17:33:55 -06:00
|
|
|
}
|
2025-05-05 17:00:43 -05:00
|
|
|
return `${window.location.origin}${this.routerBasePath}${this.sessionTrackUrl}`
|
2022-02-22 17:33:55 -06:00
|
|
|
}
|
2022-03-04 18:44:20 -06:00
|
|
|
|
2025-02-01 16:47:36 -06:00
|
|
|
/**
|
|
|
|
* Used for LocalPlayer
|
|
|
|
*/
|
2022-03-04 18:44:20 -06:00
|
|
|
get relativeContentUrl() {
|
2025-05-05 17:00:43 -05:00
|
|
|
return `${this.routerBasePath}${this.sessionTrackUrl}`
|
2022-03-04 18:44:20 -06:00
|
|
|
}
|
2024-06-05 17:02:03 -05:00
|
|
|
}
|