A music player that connects to your cloud/distributed storage.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Don't use stalled audio event on Safari

+12 -3
+12 -3
src/Javascript/audio-engine.js
··· 11 11 import { transformUrl } from "./urls" 12 12 13 13 14 + // ⛩ 15 + 16 + 17 + const IS_SAFARI = !!navigator.platform.match(/iPhone|iPod|iPad/) || 18 + !!navigator.userAgent.includes("AppleWebKit") 19 + 20 + 21 + 14 22 // Audio context 15 23 // ------------- 16 24 ··· 25 33 self.context = context 26 34 27 35 28 - let SINGLE_AUDIO_NODE = !!navigator.platform.match(/iPhone|iPod|iPad/) || 29 - !!navigator.userAgent.includes("AppleWebKit") 36 + let SINGLE_AUDIO_NODE = IS_SAFARI 30 37 31 38 32 39 export function usesSingleAudioNode() { ··· 253 260 audio.addEventListener("play", bind(audioPlayEvent)) 254 261 audio.addEventListener("seeking", bind(audioLoading)) 255 262 audio.addEventListener("seeked", bind(audioLoaded)) 256 - audio.addEventListener("stalled", bind(audioStalledEvent)) 257 263 audio.addEventListener("timeupdate", bind(audioTimeUpdateEvent)) 264 + 265 + // `stalled` event doesn't work properly on Safari 266 + if (!IS_SAFARI) audio.addEventListener("stalled", bind(audioStalledEvent)) 258 267 259 268 audio.load() 260 269 audioElementsContainer.appendChild(audio)