Crate librespot_connect

Crate librespot_connect 

Source
Expand description

§Connect

The connect module of librespot. Provides the option to create your own connect device and stream to it like any other official spotify client.

The Spirc is the entrypoint to creating your own connect device. It can be configured with the given ConnectConfig options and requires some additional data to start up the device.

When creating a new Spirc it returns two items. The Spirc itself, which is can be used as to control the local connect device. And a Future, lets name it SpircTask, that starts and executes the event loop of the connect device when awaited.

A basic example in which the Spirc and SpircTask is used can be found here: examples/play_connect.rs.

§Example

use std::{future::Future, thread};

use librespot_connect::{ConnectConfig, Spirc};
use librespot_core::{authentication::Credentials, Error, Session, SessionConfig};
use librespot_playback::{
    audio_backend, mixer,
    config::{AudioFormat, PlayerConfig},
    mixer::{MixerConfig, NoOpVolume},
    player::Player
};

async fn create_basic_spirc() -> Result<(), Error> {
    let credentials = Credentials::with_access_token("access-token-here");
    let session = Session::new(SessionConfig::default(), None);

    let backend = audio_backend::find(None).expect("will default to rodio");

    let player = Player::new(
        PlayerConfig::default(),
        session.clone(),
        Box::new(NoOpVolume),
        move || {
            let format = AudioFormat::default();
            let device = None;
            backend(device, format)
        },
    );

    let mixer = mixer::find(None).expect("will default to SoftMixer");

    let (spirc, spirc_task): (Spirc, _) = Spirc::new(
        ConnectConfig::default(),
        session,
        credentials,
        player,
        mixer(MixerConfig::default())?
    ).await?;

    Ok(())
}

Structs§

ConnectConfig
Configuration of the connect device
LoadRequest
Request for loading playback
LoadRequestOptions
The parameters for creating a load request
Options
The available options that indicate how to start the context
Spirc
The spotify connect handle

Enums§

LoadContextOptions
The options which decide how the playback is started
PlayingTrack
An item that represent a track to play