Uso de Timeshift Radio

Anterior Siguiente

Timeshift Radio se encuentra actualmente en versión limitada para publishers seleccionados.

Timeshift Radio permite al oyente avanzar y retroceder las últimas horas de audio (la ventana de Timeshift Radio, que es de tres horas de forma predeterminada. Puede personalizar un intervalo de Timeshift Radio, si prefiere más o menos de tres horas). Esto es posible gracias a una URL específica de la lista de reproducción HLS que enumera las últimas horas de audio en el archivo de lista de reproducción .m3u8. Los fragmentos de audio se guardan y se sirven desde AWS Cloudfront. El reproductor puede incluir funcionalidades de Timeshift Radio para moverse en esas horas de audio. (Para obtener más información, consulte "Timeshift Radio" en la Especificación de streaming de Triton Digital).

La siguiente información se aplica a Timeshift Radio v3.

"Now Playing" no es compatible con el modo Timeshift.

Configurar Timeshift Radio

Configure un reproductor como de costumbre y pase el parámetro timeShift como parte de la llamada de reproducción.

player.play({
    station: TRITONRADIOMUSIC,
    timeShift: true,
  });
  • El reproductor seleccionará un montaje non-timeshift en vivo según el navegador y el dispositivo del oyente. Se aplican todas las operaciones de mediciones y publicidad normales.

  • Para usar Timeshift Radio, el reproductor necesita aplicar el método de "buscar"("seek") con un valor que dependerá de cuánto desee buscar el oyente.

    • El parámetro del valor seek se expresa en segundos.

    • Si el valor es negativo, el reproductor buscará retrocediendo en el tiempo; si es positivo, buscará hacia adelante.

    • En el ejemplo siguiente se buscó un minuto hacia atrás:
      player.seek(-60);  

  • Cuando se solicita una búsqueda, el SDK comprueba si el reproductor está en modo en vivo o en modo Timeshift .

    • Si este es el primer evento de búsqueda, el reproductor cambia de Live a Timeshift, donde el SDK se conectará al montaje Timeshift y saltará al punto que el oyente buscaba.

    • Si el reproductor ya está en modo Timeshift, buscar hacia adelante o hacia atrás busca en el stream hacia donde el oyente quiere ir.

  • Para volver a la vida en vivo , el jugador tiene que llamar al seekLive() método:
    seekLive();
    De esta manera se detiene el stream Timeshift y se conecta nuevamente con el stream en vivo.

  • Para buscar desde en vivo , el jugador tiene que llamar al seekFromLive() método:
    seekFromLive();
    Busca atrás en el tiempo la cantidad de segundos del stream en vivo consultado. En este caso, siempre se supone que el número de segundos es negativo, por lo que no es necesario usar "- ". (Por ej., ambos seekFromLive(-1800);  y seekFromLive(1800);  buscará hacia atrás 1800 segundos).

Event Listener

El kit de desarrollo de software expone un nuevo evento llamado timeshift-info , al cual se puede suscribir. Los datos proporcionan información general sobre el stream HLS. En el siguiente ejemplo, se usa la variableonTimeshiftInfo , pero puede usar cualquier secuencia de texto como variable.

player.addEventListener("timeshift-info", onTimeshiftInfo);
 
function onTimeshiftInfo(e) {
 totalTimeshiftDuration = e.data.totalduration - 10;
 updateTimeshiftSlider({"min": Math.floor(-1 * e.data.totalduration),"max": 0, "label":("-" + formatDate(e.data.totalduration))});
}

Anclaje del programa

GetCloudStreamInfo

Use GetCloudStreamInfo para devolver la información del programa en el evento timeshift-info para todos los programas disponibles.

Por el momento, esta función se limita al último programa recibido por Triton Streaming Network. En otras palabras, GetCloudStreamInfo sólo puede devolver el programa que se está reproduciendo actualmente. Un lanzamiento futuro de Timeshift Radio proporcionará un mayor alcance del programa.

Por ejemplo, use:

player.GetCloudStreamInfo("TRITONRADIOMUSIC")

...para traer datos como los que se ven en el siguiente ejemplo:

{ 
      "maximumRewindTimeSec": 10800,
      "programs": {
            "name": "program",
            "program_episode_id": "48651-1678715517259",
            "properties": {
                  "cue_id": "23337",
                  "cue_time_start": "1678715517259",
                  "cue_title": "ProgramStart",
                  "program_id": "48651",
                  "program_time_start": "1678715517259",
                  "program_title": "The Lunch Punch with Evie",
                  "stw_cached": "false",
                  "stw_original_type": "stwcue"
            }
      }
}

Ejemplo del evento timeshift-info:

function onTimeshiftInfo(e) {
 
 if(e.data.programs){
   let timeshiftPrograms = e.data.programs.map((item)=>{
     let startTimeLabel = new Date(parseInt(item.properties.program_time_start.trim())).toLocaleString('en-US', {  
       hour: 'numeric',
       minute: 'numeric',
       second: 'numeric',
       hour12: false
     });
 
     return {
       "name": item.name,
       "title": item.properties.program_title,
       "startTime": startTimeLabel,
       "programId": item.properties.program_id
       
       }
   });  
}

playProgram

Use playProgram para reproducir el programa que se trajo con GetCloudStreamInfo

Si la hora de inicio del programa traído se encuentra más allá del límite del intrvalo de Timeshift Radio, la reproducción comienza en el límite de ese intervalo, no al comienzo del programa. Por ejemplo, si su ventana de Timeshift Radio es de tres horas y el programa comenzó 3.5 horas antes GetCloudStreamInfo se utilizó, luego playProgram comenzará a reproducir el programa 30 minutos después de su episodio (es decir, tres horas atrás de la hora actual).

Los módulos playProgram utiliza los siguientes parámetros:

  • ID de programa: el ID de programa que se devolvió para el programa que desea reproducir.

  • Desplazamiento: Se establece en 0 para iniciar la reproducción desde el principio del programa. El rango válido es de 0 a la duración del programa.

  • Nombre de la estación: El nombre de la estación. Por ejemplo, "TRITONRADIOMUSIC"

Ejemplo:

player.playProgram(48651-1678715517259, 0, "TRITONRADIOMUSIC")

Configurar el modo Force Timeshift

Los módulos forceTimeShift hace que el SDK elija el montaje de Timeshift de la conexión inicial y lo reproduzca en modo Timeshift.

player.play({
    station: TRITONRADIOMUSIC,
    forceTimeShift: true,
  });