私はSwiftでパーソナルアプリを構築していますSpotify api、そしてそれがしなければならないことの1つは、再生していた曲が終わったら別の曲を再生することです。曲のIDはすべて希望どおりに並べられており、正常に再生できます。
いつかを知る方法があるかどうかを知る必要があります曲が終わりになっているので、次の曲の再生を開始するタイミングや他のことを行うタイミングがわかります(別の理由で曲が終了するたびにHTTPリクエストを作成します)。
あなたが私に指摘できる提案やリソースは信じられないほど役に立ちます!グーグル検索で答えが見つかりませんでした:(
Spotify API:曲の再生がいつ終了したかを判断する方法はありますか?
これは投稿された同様の質問ですが、JavaScript用であり、回答されませんでした。
回答:
回答№1の場合は3あなたは SPTAudioStreamingPlaybackDelegate
プロトコル、Spotifyプレーヤーを設定します playbackDelegate
プロパティと実装 didStopPlayingTrack
。クラスの例は次のようになります。
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() {
// ...
}
}
(セットアップ機能は、次のようなものであれば何でもかまいません。 viewDidLoad
プレーヤーを監視しているオブジェクトがサブクラス化ではなくビューコントローラーである場合 NSObject
。)
なぜなら didStopPlayingTrack
〜です デリゲート 機能、SpotifySDKはそれがいつ管理する必要があります呼び出されます(より具体的には、プレーヤーはデリゲートオブジェクトで呼び出す必要があります)。プレーヤーのデリゲートが設定されている限り、自分で呼び出す必要はありません。