sessionDidEndPlayback не вызывается

Я включил SPSessionPlaybackDelegate и метод:

-(void)sessionDidEndPlayback:(SPSession *)aSession {
NSLog(@"song ended");

}

Тем не менее, это не вызывается, когда песня заканчивается естественным образом. Есть ли что-то, что я должен сделать дополнительно для реализации этого делегата? Другие такие методы вызываются в соответствующее время:

-(void)sessionDidLoginSuccessfully:(SPSession *)aSession; {

}

person joshb    schedule 02.01.2013    source источник
comment
У меня такая же проблема, странно, что вы спросили об этом сегодня. Что-то не так с сервисом или мы что-то делаем не так?   -  person davis    schedule 03.01.2013
comment
Итак, метод должен выглядеть так -(void)sessionDidEndPlayback:(id <SPSessionPlaybackProvider>)aSession {}, но у меня он все еще не работает.   -  person davis    schedule 03.01.2013
comment
Я думаю, что мы делаем что-то неправильно, это никогда не работало для меня. Возможно, я неправильно реализую делегат SPSession, поскольку некоторые другие обратные вызовы этого делегата также не работают. Я пробовал несколько вещей и до сих пор не добрался до сути.   -  person joshb    schedule 03.01.2013


Ответы (1)


sessionDidEndPlayback: является частью протокола SPSessionPlaybackDelegate, а не SPSessionDelegate. Он вызывается для любого объекта, установленного как playbackDelegate объекта сеанса.

Однако, если вы используете SPPlaybackManager для воспроизведения звука, этот класс устанавливает себя как playbackDelegate сеанса при его создании и требует, чтобы он оставался таким.

В настоящее время SPPlaybackManager не предоставляет метод делегата для окончания дорожки, поэтому в текущем выпуске CocoaLibSpotify это можно сделать, наблюдая за свойством currentTrack SPPlaybackManager — когда оно достигает nil, вы знаете, что воспроизведение закончилось.

Ветвь dev CocoaLibSpotify только что добавила метод playbackManagerIsFinishingPlayback: в протокол делегата SPPlaybackManager.

person iKenndac    schedule 03.01.2013
comment
Не могли бы вы сказать мне, где я могу найти метод воспроизведенияManagerIsFinishingPlayback. Я много искал, но не мог найти - person Tendulkar; 27.03.2014
comment
Как говорится в ответе, он находится в ветке dev проекта на gitHub. Это еще не стабильная версия. - person iKenndac; 27.03.2014