web-dev-qa-db-fra.com

HTML5 augmente-t-il la vitesse de YouTube de 2x par rapport à l'URL?

Je voudrais savoir comment accélérer 2x une vidéo YouTube sans que l'utilisateur ne clique sur le HTML5 (de la vidéo), mais plutôt en modifiant l'URL.

Par exemple, je sais regarder une vidéo à partir d'une heure précise en ajoutant à l'URL le paramètre &t=1m1s (pendant 1 minute et une seconde). Est-il possible d'utiliser une méthode similaire pour accélérer 2x la vidéo?

Quels paramètres dois-je ajouter à l'URL pour regarder la vidéo à double vitesse (j'utilise html5)?

28
tonni

Il n'y a aucun moyen de modifier la vitesse de lecture par des arguments URL.

Quoi qu'il en soit, si vous travaillez avec du HTML, vous pouvez profiter de l'API YouTube Player iFrame.

Voici comment configurer votre lecteur avec tout le JavaScript: https://developers.google.com/youtube/iframe_api_reference#Getting_Started

Et voici la fonction que vous recherchez pour définir la vitesse de lecture: https://developers.google.com/youtube/iframe_api_reference#Playback_rate

Vous pouvez donc modifier votre fonction onPlayerReady comme ceci:

function onPlayerReady(event) {
  player.setPlaybackRate(2); // This is what you're looking for
  event.target.playVideo();
}

Vous pouvez bien sûr passer à l'étape 5 de la documentation car cela arrêtera la lecture de votre vidéo après six secondes.

Si vous avez du mal à le configurer, je modifierai un JSFiddle plus tard (je ne pourrais pas le faire au travail car mon plugin Flash ne se lancera pas).

Mise à jour:

Voici le JSFiddle fonctionne correctement avec ce code exactement: http://jsfiddle.net/jpreynat/e11oy0eu/

36
jpreynat

J'essayais de faire exactement la même chose plus tôt cette semaine.

Une solution purement à partir d'un paramètre d'URL n'est pas possible. (ou si c'est le cas, ce n'est pas de la documentation ici: https://developers.google.com/youtube/player_parameters )

Je suis venu sur ce JSFiddle de Johan Preynat: http://jsfiddle.net/jpreynat/e11oy0eu/

A fonctionné pour moi, donc j'espère que cela vous sera utile aussi

[~ # ~] html [~ # ~]

<!-- 1. The <iframe> (and video player) will replace this <div> tag. -->
<div id="player"></div>

JavaScript

// 2. This code loads the IFrame Player API code asynchronously.
var tag = document.createElement('script');

tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

// 3. This function creates an <iframe> (and YouTube player)
//    after the API code downloads.
var player;
function onYouTubeIframeAPIReady() {
    player = new YT.Player('player', {
        height: '390',
        width: '640',
        videoId: 'M7lc1UVf-VE',
        events: {
            'onReady': onPlayerReady
        }
    });
}

// 4. The API will call this function when the video player is ready.
function onPlayerReady(event) {
    player.setPlaybackRate(2);
    event.target.playVideo();
}

Voir également la documentation YouTube à ce sujet: https://developers.google.com/youtube/iframe_api_reference

2
Alicia

Pouvez-vous injecter un décalage> ou <à partir de l'entrée des utilisateurs via une URL ou un javascript plus simple? Il est peut-être plus facile de forcer la touche de raccourci depuis le côté des utilisateurs.