up
This commit is contained in:
@@ -112,7 +112,7 @@ export class MediaPlayer {
|
||||
const spare = this.elements.music.find((media) => media !== active)!
|
||||
spare.pause()
|
||||
spare.muted = true
|
||||
if (next) this.source(spare, next.source.url)
|
||||
if (next && next.source.ready !== false) this.source(spare, next.source.url)
|
||||
else this.clear(spare)
|
||||
}
|
||||
private async applyChannel(channel: Channel, snapshot: State) {
|
||||
@@ -124,7 +124,7 @@ export class MediaPlayer {
|
||||
r.operation = c.operation
|
||||
const session = snapshot.session
|
||||
const previousId = r.sourceId
|
||||
r.sourceId = c.source?.id ?? null
|
||||
r.sourceId = c.source ? `${c.source.id}:${c.source.url}` : null
|
||||
if (!c.source) {
|
||||
if (channel === 'main') {
|
||||
this.clear(this.elements.audio)
|
||||
@@ -139,7 +139,7 @@ export class MediaPlayer {
|
||||
this.clear(c.source.kind === 'audio' ? this.elements.video : this.elements.audio)
|
||||
} else {
|
||||
media =
|
||||
r.media && previousId === c.source.id
|
||||
r.media && previousId === r.sourceId
|
||||
? r.media
|
||||
: this.elements.music.find((element) => element !== r.media)!
|
||||
if (r.media && r.media !== media) r.media.pause()
|
||||
@@ -191,7 +191,7 @@ export class MediaPlayer {
|
||||
throw new Error('Не удалось определить длительность файла')
|
||||
const position = Math.min(c.position, media.duration)
|
||||
if (
|
||||
(c.seekOperation > r.seekOperation || previousId !== c.source.id) &&
|
||||
(c.seekOperation > r.seekOperation || previousId !== r.sourceId) &&
|
||||
Math.abs(media.currentTime - position) > 0.01
|
||||
) {
|
||||
await waitUntil(
|
||||
|
||||
Reference in New Issue
Block a user