我正在使用SPPlaybackManager播放曲目,但在播放的一些小而重要的方面遇到困難。曲目正在加載和流式傳輸,但通常在調用SPAsyncLoading的回調函數後25到1.25秒內開始播放。我已經嘗試了很多方法來查看曲目真正開始播放的時間,但似乎都表明播放已經在調用SPAsyncLoading回調(包括playbackManager.isPlaying,playbackManager.currentTrack等)時開始播放。我確定回放實際上是在我之前提到的短暫延遲之後開始的,通過設置NSTimer在SPAsyncLoading回調時運行10秒,在10秒後獲得playbackManager.trackPosition並找出差異。 TL; DR - 當CocoaLibSpotify說它啓動時,播放實際上並不開始。SPPlaybackManager - 延遲和加載
由於這個原因,出現了一些問題:首先,最重要的是,歌曲在最後由最初回調和回放之間存在的任何偏移量截斷。其次,從用戶體驗的角度來看,我需要能夠向我的用戶指出他們處於SPAsyncLoading回調和實際回放(即賽道準備進行比賽但尚未比賽)之間的「死角」。任何有關如何規避或解決這些問題的建議都非常感謝!
非常有幫助的回答。當然很驚訝地發現我們不應該使用'SPAsyncLoading'進行播放。我們應該調用'preloadTrackForPlayback'嗎? –
正確。 SPAsyncLoading僅適用於元數據,僅適用於公共符合「」協議的類 - 「SPPlaybackManager」不屬於這些類之一。 'preLoadTrackForPlayback'不是必需的,但是如果你有時間備用(例如,前一首歌曲即將完成),將會減少調用'playTrack:'和獲取音頻之間的等待時間。調用'preloadTrackForPlayback'立即跟隨'playTrack:'不會讓你加速。 –
iKenndac
當我自己調用'playTrack:'時,我得到錯誤「資源尚未加載」,因此我在啓動播放之前如何獲得必要的數據感到困惑。我錯過了什麼嗎?非常感謝你們的幫助。 –