Estoy creando una aplicación personal en Swift usando elApi de Spotify, y una cosa que debe hacer es reproducir otra canción una vez que la canción que estaba sonando ha terminado. Tengo las identificaciones de las canciones ordenadas de la forma en que quiero que sean, y puedo reproducirlas con éxito.
Solo necesito saber si hay una manera de saber cuándouna canción está finalizando, así que sé cuándo comenzar a reproducir la siguiente o hacer otras cosas (hago una solicitud HTTP cada vez que una canción termina por otra razón).
¡Cualquier sugerencia o recurso que me pueda señalar es increíblemente útil! No se pudo encontrar una respuesta a través de las búsquedas de Google :(
Spotify API: ¿hay alguna manera de determinar cuándo una canción ha terminado de reproducirse?
Esta es una pregunta similar que se publicó pero fue para javascript y nunca fue respondida.
Respuestas
3 para la respuesta № 1Puedes implementar el SPTAudioStreamingPlaybackDelegate
protocolo, configure el reproductor de Spotify playbackDelegate
propiedad e implementación didStopPlayingTrack
. Una clase de ejemplo se vería así:
class MyClass: NSObject, SPTAudioStreamingPlaybackDelegate {
var player = SPTAudioStreamingController.sharedInstance()
func setup() { // Whatever function does the setup.
player?.playbackDelegate = self
}
func audioStreaming(_ audioStreaming: SPTAudioStreamingController!, didStopPlayingTrack trackUri: String!) {
playNextSong() // Or whatever else you wish to do here.
}
func playNextSong() {
// ...
}
}
(Tenga en cuenta que la función de configuración podría ser cualquier cosa, como viewDidLoad
si el objeto que observa al jugador es un controlador de vista en lugar de una subclase NSObject
.)
Porque didStopPlayingTrack
es un delegar función, el SDK de Spotify debe administrar cuandorecibe una llamada (más específicamente, el jugador debe llamarlo en su objeto delegado); no necesita llamarlo usted mismo mientras el delegado del jugador esté configurado.