2017-05-09 2 views
2

Ich entwickle App mit Spotify-iOS-SDK, ich habe meine App erfolgreich mit Spotify verbunden und mein Audio wird abgespielt, aber das Problem ist: Wenn ich den Silent-Modus aktiviere, gibt es Kein Ton kommt von meiner App obwohl spotify Musik noch spielt. Ich habe andere Anwendungen überprüft mit Spotify-iOS-SDK (Demo-Projekt, musiXmatch) und alle von ihnen lösen können den ToniOS: Spotify Audio im Silent-Modus abspielen

Hier ist mein Code:

 self.spotifyPlayer = SPTAudioStreamingController.sharedInstance() 
     self.spotifyPlayer!.playbackDelegate = self 
     self.spotifyPlayer!.delegate = self 

     try! spotifyPlayer?.start(withClientId: auth.clientID)    
     self.spotifyPlayer!.login(withAccessToken: authSession.accessToken) 

dann wird diese Funktion aufgerufen werden:

func audioStreamingDidLogin(_ audioStreaming: SPTAudioStreamingController!) { 
    let uri = "spotify:track:" + trackId 
    self.spotifyPlayer?.playSpotifyURI(uri, startingWith: 0, startingWithPosition: 0, callback: { (error) in 
      if (error != nil) { 
       print("error: \(error) ") 
      } 
    }) 
} 
+0

haben die 'didStartPlayingTrack' Delegierten getroffen zu fehlen? Vielleicht möchten Sie sich die 'delay-Methoden' audioStreamingDidBecomeInactivePlaybackDevice' und 'didReceiveError' ansehen. –

+0

'didStartPlayingTrack' läuft reibungslos, ich habe auch eine Funktion direkt nach dem Abspielen des Titels aufgerufen,' audioStreamingDidBecomeInactivePlaybackDevice' wird aufgerufen, nachdem mein PlaySongViewController geschlossen wurde, nicht weil ich mein Telefon stumm und 'didReceiveError' nirgends aufgerufen wird –

Antwort

3

ich habe es herausgefunden, was ich

func audioStreaming(_ audioStreaming: SPTAudioStreamingController!, didChangePlaybackStatus isPlaying: Bool) { 
    print("isPlaying: \(isPlaying)") 
    if (isPlaying) { 
     try! AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback) 
     try! AVAudioSession.sharedInstance().setActive(true) 
    } else { 
     try! AVAudioSession.sharedInstance().setActive(false) 
    } 

} 
Verwandte Themen