/ /携帯電話で3回クリックするまでSoundCloud APIが応答しません。 - JavaScript、Android、jquery、モバイル、soundcloud

携帯電話で3回クリックするまでSoundCloud APIが応答しないのはなぜですか? - javascript、アンドロイド、jquery、mobile、soundcloud

私は自分のミュージックプレーヤーをSoundCloud APIとすべてがデスクトップ上でうまく機能します。ただし、音楽プレーヤーが実際に起動するまでには、何らかの理由で携帯電話の再生ボタンを少なくとも3回クリックする必要があります。私が間違っていることは何か考えはありますか?

以下は私のjQueryコードです。私の音楽プレーヤーはJS Objectであり、これがplayメソッドです。

//<-- 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;
});
}

回答:

回答№1の場合は-1

私もこの問題を抱えていました - デスクトップではすべてがうまく機能していましたが、プレーヤはモバイルを試そうとしました。私はコンソールでこれに気づいた:

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

プレイは実際にはクリックで開始されます - だからSoundmanagerがこのようにブロックしている理由はよくわかりません。私の解決策は、ユーザーが要素をクリックしたときに最初の "play"イベントを開始することでした。 - しかし、次のクリックはうまくいきます。