2012-07-02 4 views
0

Я хочу, чтобы отключить следующие и предыдущие кнопки в spotify. Я знаю, что это возможно, потому что приложение soundrop удалось это сделать.Отключить следующие предыдущие кнопки в spotify

Я немного искал, и, по моему мнению, я должен воспроизвести дорожку с контекстом как нуль или контекст, содержащий только один трек. Я тестировал все возможные решения, о которых я могу думать, но никто из них, похоже, не работает. Большинство из них фактически приводят к тому, что трек воспроизводится с контекстом как null, но кнопки Next/Previous всегда включены.

Если я нажимаю на следующую кнопку, игрок заканчивает не играет какой-либо дорожки, и обе кнопки отключены ...

Ниже приведен код из моего тестового приложения.

var sp = getSpotifyApi(1); 
var models = sp.require('sp://import/scripts/api/models'); 
var views = sp.require('sp://import/scripts/api/views'); 

models.player.observe(models.EVENT.CHANGE, function (o) { 
    console.log(['Player Change', o, models.player.context]); 
}) 

$('#play1').click(function() { 
    models.Track.fromURI("spotify:track:5A1fNC7Fdb0yyh3UA6T1ef", function (track) { 
     console.log(["play1", track.name]); 
     models.player.play(track, null); 
    }); 
}); 

$('#play2').click(function() { 
    models.Track.fromURI("spotify:track:5A1fNC7Fdb0yyh3UA6T1ef", function (track) { 
     console.log(["play2", track.name]); 
     var p = new views.Player(); 
     p.play(track, null); 
    }); 
}); 

$('#play3').click(function() { 
    models.Track.fromURI("spotify:track:5A1fNC7Fdb0yyh3UA6T1ef", function (track) { 
     console.log(["play3", track.name]); 
     var pl = new models.Playlist(); 
     pl.add(track); 
     models.player.play(track, pl); 
    }); 
}); 

$('#play4').click(function() { 
    console.log(["play4"]); 
    models.player.play("spotify:track:5A1fNC7Fdb0yyh3UA6T1ef", null); 
}); 

$('#play5').click(function() { 
    models.Track.fromURI("spotify:track:5A1fNC7Fdb0yyh3UA6T1ef", function (track) { 
     models.player.playTrack(track); 
    }); 
}); 

$('#play6').click(function() { 
    models.Track.fromURI("spotify:track:5A1fNC7Fdb0yyh3UA6T1ef", function (track) { 
     console.log(["play6", track.name]); 
     var pl = new models.Playlist(); 
     pl.add(track); 
     models.player.playTrackWithContext(track, pl, 0); 
    }); 
}); 

$('#play7').click(function() { 
    var l = new models.Link("spotify:track:5A1fNC7Fdb0yyh3UA6T1ef"); 
    sp.trackPlayer.setContextCanSkipNext(l, false); 
    console.log(["play7", models.player, sp.trackPlayer],l); 
    models.player.play(l, null); 
}); 

Результат от # play1:

["play1", "Jag är här nu"] 
["Player Change", Object, null] 

Результат от # PLAY2:

["play2", "Jag är här nu"] 
["Player Change", Object, null] 

Результат от # PLAY3:

["play3", "Jag är här nu"] 
["Player Change", Object, "spotify:internal:temp_playlist:spotify:app:[email protected]"] 

Результат от # play4:

["play4"] 
["Player Change", Object, null] 

Результат от # play5:

["play5", "Jag är här nu"] 
["Player Change", Object, null] 

Результат от # play6:

["play6", "Jag är här nu"] 
["Player Change", Object, "spotify:internal:temp_playlist:spotify:app:[email protected]"] 

Результат от # play7:

sp.trackPlayer.setContextCanSkipNext(l, false); 

В строке выше генерирует исключение с сообщение «Не удалось преобразовать параметр 0 в ссылку»

Заранее благодарен

+0

Никто не имеет какие-либо идеи? Я несколько раз видел этот вопрос в stackoverflow, но ни один из них не получил никаких реальных ответов ... – Roger

ответ

1

После некоторых работ я узнал, как это сделать.

models.Track.fromURI("spotify:track:5A1fNC7Fdb0yyh3UA6T1ef", function (track) { 
    var pl = new models.Playlist(); 
    sp.trackPlayer.setContextCanSkipPrev(pl.uri, false); 
    sp.trackPlayer.setContextCanSkipNext(pl.uri, false); 
    pl.add(track); 
    models.player.play(track, pl); 
}); 

Надеется, что это помогает кто-либо другое там пытается решить эту проблему и застрять в разговорах о воспроизведении дорожки с пустым контекстом ...

+0

Любая идея, как это сделать с новой инфраструктурой приложения api (1.18.0 - https: //developer.spotify .com/документы/приложений/API/1,0/index.html)? Магические методы setContextCanSkip * вместе со всем sp global не больше. –

Смежные вопросы