Timeshift Radio est actuellement disponible en version limitée pour les éditeurs sélectionnés.
Timeshift Radio permet à un auditeur d’avancer et de revenir en arrière sur les dernières heures d’audio (la fenêtre Timeshift Radio, qui est de trois heures par défaut. Vous pouvez opter pour une fenêtre Timeshift Radio personnalisée si vous préférez une durée supérieure ou inférieure à trois heures). Ceci est rendu possible grâce à une URL de liste de lecture HLS spécifique qui répertorie les dernières heures d’audio dans le fichier de liste de lecture .m3u8. Les séquences sonores sont sauvegardées et servies par AWS Cloudfront. Le lecteur peut alors inclure des fonctionnalités Timeshift Radio pour se déplacer pendant ces heures d'audio. (Pour plus d'informations, reportez-vous à la section « Timeshift Radio » de la spécification Triton Digital Streaming.)
Les informations ci-dessous s’appliquent à Timeshift Radio v3.
L’option « En cours de lecture » n’est pas prise en charge dans le mode Timeshift.
Configurer Timeshift Radio
Configurez un lecteur comme d’habitude et transmettez le paramètre timeShift dans le cadre de l’appel de lecture.
player.play({
station: TRITONRADIOMUSIC,
timeShift: true,
});
Le lecteur sélectionnera un montage sans Timeshift en direct basé sur le navigateur et l'appareil de l'auditeur. Toutes les mesures et opérations publicitaires normales sont appliquées.
Pour utiliser Timeshift Radio, le lecteur doit faire appel à la méthode « chercher » accompagnée d'une valeur indiquant ce que l'auditeur souhaite chercher.
Le paramètre de valeur de recherche est exprimé en secondes.
Si la valeur est négative, le lecteur cherchera à revenir en arrière ; si elle est positive, le lecteur cherchera à avancer.
L'exemple ci-dessous montre une recherche dans le temps d'une minute en arrière :
player.seek(-60);
Lorsqu’une recherche est demandée, le SDK vérifie si le lecteur est en mode live ou en mode Timeshift .
S’il s’agit de la première recherche, le lecteur passe de live à Timeshift, mode dans lequel le SDK se connectera au montage Timeshift et ira au point recherché par l’auditeur.
Si le lecteur est déjà en mode Timeshift, la recherche vers l’avant ou vers l’arrière cherche dans le flux là où l’auditeur veut aller.
Pour revenir en direct, le lecteur doit appliquer la
seekLive()
méthode :seekLive();
Cela arrêtera le flux Timeshift et entraînera une nouvelle connexion au flux en direct.Pour effectuer une recherche en direct , le lecteur doit appliquer la
seekFromLive()
méthode :seekFromLive();
Recherche en arrière le nombre de secondes demandé à partir du flux en direct. Dans ce cas, le nombre de secondes est toujours supposé avoir une valeur négative, il n'est donc pas nécessaire d'utiliser "-
". (Par exempleseekFromLive(-1800);
etseekFromLive(1800);
recherchera à revenir 1800 secondes en arrière.)
Auditeur d'événements
Le SDK présente un nouvel évènement appelé timeshift-info
auquel vous pouvez vous abonner. Les données apportent des informations générales sur le flux HLS. Dans l'exemple ci-dessous, la variableonTimeshiftInfo
est utilisée, mais vous pouvez utiliser en guise de variable n'importe quelle chaîne de texte.
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))});
}
Ancrage de programme
GetCloudStreamInfo
Utilisez GetCloudStreamInfo
pour renvoyer les informations sur le programme dans l'évènement timeshift-info
pour tous les programmes disponibles.
Pour le moment, cette fonctionnalité est limitée au dernier programme reçu par le réseau de streaming Triton. En d’autres termes,
GetCloudStreamInfo
ne peut renvoyer que le programme en cours de lecture. Une future version de Timeshift Radio offrira une plus grande portée au programme.
Utilisez par exemple :
player.GetCloudStreamInfo("TRITONRADIOMUSIC")
... pour renvoyer des données comme celles de l'exemple ci-dessous :
{
"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"
}
}
}
Exemple de l’événement 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
Utilisez playProgram
pour jouer le programme renvoyé avec GetCloudStreamInfo
Si l'heure de début du programme renvoyé se trouve au-delà de la limite de la fenêtre Timeshift Radio, la lecture commencera à partir de la limite de cette fenêtre, et non au début du programme. Par exemple, si votre fenêtre Timeshift Radio est de trois heures et que le programme a démarré 3h5 avant
GetCloudStreamInfo
ne soit utilisé,playProgram
commencera la lecture du programme 30 minutes après le début de l'épisode (trois heures après l'heure actuelle).
Le playProgram
utilise les paramètres suivants :
ID du programme : l’ID du programme qui a été renvoyé pour le programme que vous souhaitez lire.
Décalage : Réglez sur 0 pour démarrer la lecture instantanée à partir du début du programme. La plage de validité est de 0 à la durée du programme.
Nom de la station : le nom de la station. par exemple
"TRITONRADIOMUSIC"
Exemple :
player.playProgram(48651-1678715517259, 0, "TRITONRADIOMUSIC")
Mise en place du mode Force Timeshift
Le forceTimeShift
permet au SDK de choisir le montage Timeshift dès la première connexion et de lire en mode Timeshift.
player.play({
station: TRITONRADIOMUSIC,
forceTimeShift: true,
});