オフラインで使用するためにプレイリストを保存しようとするとCocoaLibSpotifyに問題があります。CocoaLibSpotifyはログイン中にオフライン利用可能なトラックをSP_TRACK_OFFLINE_WAITINGにリセットします
、私のアプリをインストールする初めてログイン、プレイリストを選択して、オフラインでの使用のためにそれを設定し、すぐにそのofflineStatusがSP_PLAYLIST_OFFLINE_STATUS_DOWNLOADINGに変わり、プレイリスト内のすべてのトラックが彼らのofflineStatusがSP_TRACK_OFFLINE_WAITINGに変更されているので、私は、彼らがダウンロードを開始一度に1つずつ、offlineStatusがSP_TRACK_OFFLINE_DONEに変更されます。 Wi-Fiをオフにして、ダウンロードしたトラックをオフラインで再生できます。
アプリを終了してもう一度ログインすると、以前はオフラインで利用可能だったトラックのofflineStatusがSP_TRACK_OFFLINE_WAITINGに変更され、オフラインで再生できなくなりました。 CocoaLibSpotifyは、ダウンロードしたプレイリストをNSCachesDirectoryに保存します。そのフォルダをチェックすると、コンテンツが変更されておらず、トラックデータがまだ残っていることがわかります。
オンラインモードでも、ダウンロードされたトラックがデバイスからオフラインで利用できる場合は、ダウンロードされたトラックがCrazoaLibSpotifyによって再生されます。 wifiをオンにして、以前にダウンロードしたこれらのSP_TRACK_OFFLINE_WAITINGトラックの再生を開始してから、Wi-Fiをすばやくオフにしても、トラック全体が引き続き再生されます。
だからのルックスから、私はトラックがまだオフラインのままが、ログインした際に何らかの理由で彼らのofflineStatusが間違ったステータスを取得します。そして、セッションは、そのofflineStatusのトラックの再生を開始することを拒否することを想定しています。
しかし、オフライン状態のトラックをリセットしないようにするにはどうすればよいですか、またはトラックがダウンロードされたことがわかったときに問題を修正してください。 offlinestatusをSP_TRACK_OFFLINE_DONEに手動で設定しようとしましたが、動作しませんでした。私は誰かがこれについていくつかの光を当てることを望んでいます。
ありがとうございます。
こんにちは、お返事ありがとうございます。私はサンプルアプリケーションを見ながらあなたが示唆したことを試しました。 サンプルでは、[SPSession logout]がapplicationWillTerminateで呼び出されます。これは、私の経験では、アプリケーションがinfo.plistのApp Diedイベントフラグを取得する必要があります。 私は試行ログインでログインしようとしましたが、ユーザー名、パスワード、覚えているクレデンシャルをYESに設定してください。 サンプルからLoginViewControllerを試しましたが、これまでのところ違いはありません。実際にはトラックがダウンロードされなくなることもあります。 – Snppls
ああ、私はiOSフラグを見逃しました。もう一つの方法は 'applicationDidEnterBackground:'に '[SPSession flushCaches]'を使うことです。 – iKenndac
こんにちは、もう一つのコメントを申し訳ありません。私はテストのためだけに[SPSession logout]をapplicationDidEnterBackgroundに入れてみました。これまでのところ、私がログインすると、いつでも保存されたクレデンシャルでログインすることができ、オフラインで利用可能だったトラックは利用可能です。ただし、オフラインで使用するためのプレイリストを設定してその状態がすぐにOFFLINE_STATUS_YESに変更され、すべてのトラックのステータスがOFFLINE_WAITINGに変更され、まったくダウンロードが開始されないという問題が発生することがあります。 CocoaLibSpotifyに同期を開始させる方法はありますか? – Snppls