/ / Pourquoi l'API SoundCloud ne répond-elle pas jusqu'à ce que je clique trois fois sur Play sur les téléphones mobiles? - javascript, android, jquery, mobile, soundcloud

Pourquoi l'API SoundCloud ne répond-elle pas tant que je ne clique pas trois fois sur un téléphone mobile? - javascript, android, jquery, mobile, soundcloud

J'ai créé mon propre lecteur de musique avec leAPI SoundCloud et tout fonctionne bien sur les ordinateurs de bureau. Cependant, pour une raison quelconque, il faut au moins trois clics sur le bouton de lecture d'un téléphone mobile avant que le lecteur de musique ne démarre réellement. Des idées sur ce que je fais mal?

Voici mon code jQuery. mon lecteur de musique est un objet JS et voici la méthode de lecture:

//<-- PLAY TRACK -->
this.playTrack = function(track, number) {

var that = this;

SC.stream("/tracks/" + track, {onfinish: function() {
that.onFinish(number);
}},

function (sound) {
that.stream = sound;
that.currentTrack = track;

var trackName = $(that.track_links[number]).html();
trackName = trackName.replace(/d.s/, "");
that.player.find(".current-track").css("display", "block");
that.player.find(".current-track").children("p").html(trackName);

sound.play({
whileplaying: function () {
that.player.find(".progress").css("width", ((sound.position / sound.duration) * 100) + "%");
that.player.find(".playtime").html(that.minutesAndSeconds(sound.position));
},
});

that.updateProgress(sound);

that.playing = true;
});
}

Réponses:

-1 pour la réponse № 1

J'avais aussi ce problème - tout fonctionnait bien sur le bureau, mais le joueur a essayé de le faire sur mobile avant de jouer. J'ai remarqué cela dans la console:

Failed to execute "play" on "HTMLMediaElement": API can only be initiated by a user gesture.

Le jeu est en fait initié par un clic - doncJe ne sais pas pourquoi Soundmanager le bloquait comme ça. Ma solution était d'initier l'événement "play" initial lorsque l'utilisateur clique sur un élément - dans mon cas, celui qui met le joueur en vue. J'obtiens toujours l'erreur - mais, le prochain clic fonctionne.