Fix #1180: Fix broken media support detection

This commit is contained in:
Agate 2020-07-31 11:06:29 +02:00
parent 75f9537d89
commit c6e3ce1925
4 changed files with 16 additions and 4 deletions

View File

@ -0,0 +1 @@
Fix broken media support detection (#1180)

View File

@ -342,13 +342,19 @@ export default {
}, },
getSources (uploads) { getSources (uploads) {
let self = this; let self = this;
let sources = uploads.map(u => { let a = document.createElement('audio')
let allowed = ['probably', 'maybe']
let sources = uploads.filter(u => {
let canPlay = a.canPlayType(u.mimetype)
return allowed.indexOf(canPlay) > -1
}).map(u => {
return { return {
type: u.mimetype, type: u.mimetype,
src: self.fullUrl(u.listen_url), src: self.fullUrl(u.listen_url),
duration: u.duration duration: u.duration
} }
}) })
a.remove()
if (sources.length > 0) { if (sources.length > 0) {
// We always add a transcoded MP3 src at the end // We always add a transcoded MP3 src at the end
// because transcoding is expensive, but we want browsers that do // because transcoding is expensive, but we want browsers that do

View File

@ -408,12 +408,18 @@ export default {
return sound return sound
}, },
getSrcs: function (trackData) { getSrcs: function (trackData) {
let sources = trackData.uploads.map(u => { let a = document.createElement('audio')
let allowed = ['probably', 'maybe']
let sources = trackData.uploads.filter(u => {
let canPlay = a.canPlayType(u.mimetype)
return allowed.indexOf(canPlay) > -1
}).map(u => {
return { return {
type: u.extension, type: u.extension,
url: this.$store.getters['instance/absoluteUrl'](u.listen_url), url: this.$store.getters['instance/absoluteUrl'](u.listen_url),
} }
}) })
a.remove()
// We always add a transcoded MP3 src at the end // We always add a transcoded MP3 src at the end
// because transcoding is expensive, but we want browsers that do // because transcoding is expensive, but we want browsers that do
// not support other codecs to be able to play it :) // not support other codecs to be able to play it :)
@ -721,7 +727,7 @@ export default {
}, 500); }, 500);
// If the session is playing as a PWA, populate the notification // If the session is playing as a PWA, populate the notification
// with details from the track // with details from the track
if ('mediaSession' in navigator) { if (this.currentTrack && 'mediaSession' in navigator) {
let metadata = { let metadata = {
title: this.currentTrack.title, title: this.currentTrack.title,
artist: this.currentTrack.artist.name, artist: this.currentTrack.artist.name,

View File

@ -47,7 +47,6 @@ export function setCsrf(xhr) {
} }
export function checkRedirectToLogin (store, router) { export function checkRedirectToLogin (store, router) {
console.log('HELLO', store.state.auth.authenticated, router.currentRoute.fullPath)
if (!store.state.auth.authenticated) { if (!store.state.auth.authenticated) {
router.push({name: 'login', query: {next: router.currentRoute.fullPath}}) router.push({name: 'login', query: {next: router.currentRoute.fullPath}})
} }