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., ambosseekFromLive(-1800);
yseekFromLive(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ó, luegoplayProgram
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,
});