Lire à partir d'un timecode avec video.js

Pour toutes les discussions javascript, jQuery et autres frameworks
Répondre
Histonic
Messages : 1
Enregistré le : 19 déc. 2019, 20:59

Lire à partir d'un timecode avec video.js

Message par Histonic » 19 déc. 2019, 21:04

Bonjour,

J'ai besoin de faire démarrer la lecture d'une vidéo à partir d'un certain point, en cliquant par exemple sur un lien ou un bouton.

En utilisant l'élément HTML <video>, j'y arrivais très bien avec ce petit code :

Code : Tout sélectionner

<script type="text/javascript">
		var lecteur;
		function timecode(secondes) {
		    lecteur = document.getElementById("mavideo");
		    lecteur.currentTime = (secondes);
		    lecteur.play();
		}
	</script>
Et en cliquant par exemple sur ce lien :

Code : Tout sélectionner

<a href=#mavideo onclick="timecode(60)">Lire à partir de 1 min</a>
Comme le lecteur natif généré par le navigateur ne convenait pas, j'ai importé video.js (version 7.6.6) avec le thème Fantasy.
Et depuis, mon code ci-dessous ne fait rien...

Quelqu'un a-t-il une idée ? Merci.

NY152
Messages : 4
Enregistré le : 01 févr. 2020, 14:44

Re: Lire à partir d'un timecode avec video.js

Message par NY152 » 01 févr. 2020, 16:24

Bonjour,

Je propose un début de réponse qui devrait fonctionner.

Voici une petite fonction transformant les paramètres d'une URL en tableau associatif. Code que j'ai un peu modifié d'un code trouvé sur Internet :

Code : Tout sélectionner

function extractUrlParams() {
    let t = location.search.substring(1).split('&');
    let f = [];
    for (let i = 0; i < t.length; i++) {
        let x = t[i].split('=');
        f[x[0]] = x[1];
    }
    return f;
}
Les quelques lignes qui suivent servent à chercher le paramètre d'URL seconds et l'affiche en console.

Rien de très compliqué à adapter et d'en faire une petite fonction à appeler à ta ligne lecteur.currentTime ^^

Code : Tout sélectionner

let paramsUrl = extractUrlParams();
for (let key in paramsUrl) {
    let value = paramsUrl[key];
    if (key === 'seconds') {
        console.log(paramsUrl[key]);
    }
}
J'espère t'avoir aidé :)

Répondre