Sha256: 712d4980a0c1191e6385d0f4f7e1a35e3a9c4d7aa92d8f37e84cf70e666fee9c

Contents?: true

Size: 1.52 KB

Versions: 2

Compression:

Stored size: 1.52 KB

Contents

---
---

{% comment %}
  TODO: Asignar esta variable una sola vez!
{% endcomment %}
{%- assign radio = site.posts | find: 'layout', 'radio' -%}

{% turbolinks %}

// Inicia y gestiona el stream
const streaming = (element) => {
  // Cambiar el src para que incluya un timestamp, esto engaña a Firefox
  // a recargar el video cuando se corta en lugar de pensar que terminó
  // la descarga y empezar a reproducir desde el principio.
  element.querySelectorAll('source').forEach(source => {
    // Obtener la URL completa hasta el ?
    source.src = source.src.split('?')[0]+'?'+Date.now().toString()
  })

  // Empezar la reproducción
  element.load()
  element.play()
}

// Este es el evento que espera a que cargue todo el sitio
document.addEventListener('turbolinks:load', () => {
  const transmission = document.querySelector('#transmission')

  if ('mediaSession' in navigator) {
    navigator.mediaSession.metadata = new MediaMetadata({
      title: "{{ radio.description | escape }}",
      artist: "{{ radio.title | escape }}",
      artwork: [
        {
          src: '{{ radio.logo.path | thumbnail: 192 }}',
          sizes: '192x192',
          type: 'image/{{ radio.logo.path | split: '.' | last }}'
        },
      ],
    })

    navigator.mediaSession.setActionHandler('play', () => transmission.play())
    navigator.mediaSession.setActionHandler('pause', () => transmission.pause())
  }

  // Volver a reproducir cuando se corte
  // TODO: Agregar los tracks
  transmission.addEventListener('ended', event => streaming(transmission))
})

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
radios-comunitarias-jekyll-theme-0.1.1 assets/js/script.js
radios-comunitarias-jekyll-theme-0.1.0 assets/js/script.js