INNER CODE UNIT · Rust

initialize_playback

aome510/spotify-player · spotify_player/src/client/mod.rs:189

    pub fn initialize_playback(&self, state: &SharedState, resume: bool) {
        tokio::task::spawn({
            let client = self.clone();
            let state = state.clone();
            async move {
                // The main playback initialization logic is simple:
                // if there is no playback, connect to an available device
                //
                // However, because it takes time for Spotify server to show up new changes,
                // a retry logic is implemented to ensure the application's state is properly initialized
                let max_retries = 3;
                for i in 0..max_retries {
                    tokio::time::sleep(std::time::Duration::from_secs(1)).await;

                    if let Err(err) = client.retrieve_current_playback(&state, false).await {
                        tracing::error!("Failed to retrieve current playback: {err:#}");
                        return;
                    }

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…