J'ai une configuration jPlayer de base qui lit un fichier audio (150MB) à partir d'AWS S3. Ma configuration ressemble à ceci.Quel événement jPlayer désigne la possibilité de commencer à jouer?
jQuery(function() {
var $player, jPlayerDefaults, progressCount;
$player = $('<div>');
progressCount = 0;
jPlayerDefaults = {
ready: function(e) {
console.log("player ready");
$player.jPlayer('setMedia', {
mp3: 'http://s3-eu-west-1.amazonaws.com/some/file.mp3'
});
return $player.jPlayer('play', 1234);
},
seeking: function(e) {
return console.log("seeking");
},
seeked: function(e) {
return console.log("seeked");
},
canplay: function(e) {
console.log('canplay');
},
progress: function(e) {
return console.log("progress", progressCount += 1);
},
playing: function(e) {
return console.log("playing");
},
error: function(e) {
return console.log("Error loading audio.", e);
},
supplied: 'mp3',
preload: 'auto'
};
$player.jPlayer(jPlayerDefaults);
});
Ma compréhension de la HTML5 audio spec et this SO question est que l'événement canplay
désigne le point auquel l'audio doit commencer à jouer.
Toutefois, lorsque j'exécute le code ci-dessus (avec un cache de navigateur vide), j'obtiens le journal suivant. Je n'entends la lecture audio qu'après l'événement seeked
. Cet événement se produit longtemps (minutes) après l'événement canplay
.
Est-ce que ce comportement est attendu ou est-ce que je fais quelque chose de mal? De plus, est-ce que jPlayer suit fidèlement la spécification de tag HTML5 <audio>
ici?
Modifier: Incase vous vous demandiez, AWS S3 accepte les demandes de plage d'octets.
n'est pas "cherché" pour quand l'utilisateur utilise le widget scrubber? peut-être qu'il se déclenche une fois à la fin du téléchargement ou de la récréation? – tim
Je ne suis pas sûr de ce qu'est le "widget scrubber"? –
pouvez-vous essayer de vous connecter aussi 'canplaythrough'? il semble que l'on attende que le fichier entier se charge – chickpeas