Fixed finish error and make continous playback working on android browsers

This commit is contained in:
kontiko 2024-06-30 22:00:47 +02:00
parent f36df9e67b
commit aba7108058
3 changed files with 15 additions and 8 deletions

View file

@ -18,17 +18,24 @@ export default class DLNAPlayer extends EventEmitter {
this.paused this.paused
this.currentTime = null this.currentTime = null
//This is stupid but the best way to keep the site loaded on Smartphones is to have a fake player playing in the background \(^_^)/ //This is stupid but the best way to keep the site loaded on Smartphones is to have a fake player playing in the background \(^_^)/
this.playableMimeTypes = ['audio/flac', 'audio/mpeg', 'audio/mp4', 'audio/ogg', 'audio/aac', 'audio/x-ms-wma', 'audio/x-aiff', 'audio/webm']
var audioEl = document.createElement('audio') var audioEl = document.createElement('audio')
audioEl.id = 'audio-player' audioEl.id = 'audio-player'
audioEl.style.display = 'none' audioEl.style.display = 'none'
audioEl.muted = true
document.body.appendChild(audioEl) document.body.appendChild(audioEl)
this.fake_player = audioEl this.fake_player = audioEl
// TODO: Use canDisplayType on receiver to check mime types this.fake_player.volume = 0.00001
this.playableMimeTypes = ['audio/flac', 'audio/mpeg', 'audio/mp4', 'audio/ogg', 'audio/aac', 'audio/x-ms-wma', 'audio/x-aiff', 'audio/webm'] this.fake_player.addEventListener(
'play',
this.coverUrl = '' function () {
this.castPlayerState = 'IDLE' setTimeout(
function () {
this.fake_player.muted = true
}.bind(this),
1000
)
}.bind(this)
)
// Supported audio codecs for chromecast // Supported audio codecs for chromecast
@ -43,6 +50,7 @@ export default class DLNAPlayer extends EventEmitter {
initialize() { initialize() {
this.ctx.$root.socket.on('dlna_status', (data) => this.setStatus(data)) this.ctx.$root.socket.on('dlna_status', (data) => this.setStatus(data))
this.ctx.$root.socket.on('dlna_finished', () => this.emit('finished'))
//this.player = this.ctx.$root.castPlayer //this.player = this.ctx.$root.castPlayer
} }

View file

@ -270,7 +270,6 @@ export default class PlayerHandler {
if (session.playMethod === this.ctx.$constants.PlayMethod.DIRECTPLAY) { if (session.playMethod === this.ctx.$constants.PlayMethod.DIRECTPLAY) {
this.isHlsTranscode = false this.isHlsTranscode = false
} }
console.log('blub', audioTracks)
this.player.set(this.libraryItem, audioTracks, this.isHlsTranscode, this.startTime, this.playWhenReady) this.player.set(this.libraryItem, audioTracks, this.isHlsTranscode, this.startTime, this.playWhenReady)
} }

View file

@ -29,7 +29,7 @@ class DLNASession {
//If playback is stopped check if playback of track ended and Load new track //If playback is stopped check if playback of track ended and Load new track
var t = this.tracks[this.trackIndex] var t = this.tracks[this.trackIndex]
if (t.duration - this.playtime < 2) { if (t.duration - this.playtime < 2) {
if (this.trackIndex < this.tracks.length) { if (this.trackIndex < this.tracks.length - 1) {
this.load(this.tracks[this.trackIndex + 1].startOffset) this.load(this.tracks[this.trackIndex + 1].startOffset)
this.playtime = 0 this.playtime = 0
return return