私は Javascript と Soundcloud SDK を初めて使用するので、現在のソリューションが根本から外れている場合は、改善方法を教えてください。
カスタムの Soundcloud プレーヤーを作成していますが、ビルド済みのウィジェットは使用していません。トラックの再生が終了したら、自動的に次のトラックに移動したいと考えています。Soundcloudプレイリストを使用せずにこれを達成できるようにしたい. 代わりに、再生するトラックの JSON リストを取得します。
リンクをクリックしてトラックを再生、一時停止、停止、スキップできますが、機能をトリガーするためにトラックの再生が完了したことを確認する方法がわかりませんnextTrack
。助言がありますか?
Soundcloud Javascript SDK ストリーミング API: http://developers.soundcloud.com/docs/api/sdks#streaming
これが私のコードです:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script src="http://connect.soundcloud.com/sdk.js"></script>
<div class="music-player">
<h4 class="trackTitle">Current track</h4>
<a href="#" id="play">Play</a>
<a href="#" id="pause" style="display:none;">Pause</a>
<a href="#" id="stop">Stop</a>
<a href="#" id="next">Next</a>
</div>
<script>
Track = function (trackId){
var currentTrack = "";
SC.initialize({
client_id: "CLIENT_ID"
});
SC.stream("http://api.soundcloud.com/tracks/" + trackId, function(sound){
currentTrack = sound;
});
this.play = function() {
currentTrack.play();
};
this.pause = function() {
currentTrack.pause();
};
this.stop = function() {
currentTrack.stop();
};
};
Rotation = function(tracks) {
var currentTrack = tracks[0];
this.currentTrack = function () {
return currentTrack;
};
this.nextTrack = function () {
var currentIndex = tracks.indexOf(currentTrack);
var nextTrackIndex = currentIndex + 1;
var nextTrackId = tracks[nextTrackIndex];
currentTrack = nextTrackId;
return currentTrack
};
};
$(document).ready (function(){
var songs = [{"title":"Sad Trombone","song_url":"https://soundcloud.com/sheckylovejoy/sad- trombone","soundcloud_id":"18321000"},{"title":"AraabMUZIK - \"Beauty\"","song_url":" https://soundcloud.com/selftitledmag/araabmuzik-beauty","soundcloud_id":"79408289"}]
var rotation = new Rotation(songs);
var currentTrack = rotation.currentTrack();
var currentPlayingTrack = new Track(currentTrack.soundcloud_id);
$('#play').on('click', function(event){
currentPlayingTrack.play();
$('.trackTitle').html(currentTrack.title);
$('#pause').show();
$('#play').hide();
});
$('#pause').on('click', function(event){
currentPlayingTrack.pause();
$('#pause').hide();
$('#play').show();
});
$('#stop').on('click', function(event){
currentPlayingTrack.stop();
$('#pause').hide();
$('#play').show();
});
$('#next').on('click', function(event){
currentPlayingTrack.stop();
currentTrack = rotation.nextTrack();
currentPlayingTrack = new Track(currentTrack.soundcloud_id);
currentPlayingTrack.play();
$('.trackTitle').html(currentTrack.title);
});
});
</script>