1

私は libspotify に慣れようとしていますが、libspotify に関するドキュメントが非常に不足していると言わざるを得ません。例から小さなアプリをハックしましたが、動作させることができません。

Visual Studio 2012 で C コンソール アプリケーションを構築しています。appkey は正しいです。

sp_session_config config;
sp_error error;
sp_session *session;
char *blob = NULL;

memset(&config, 0, sizeof(config));

config.api_version = SPOTIFY_API_VERSION;
config.cache_location = "tmp";
config.settings_location = "tmp";
config.application_key = g_appkey;
config.application_key_size = g_appkey_size;

config.user_agent = "SpotiTest";

error = sp_session_create(&config, &session);
if (SP_ERROR_OK != error) {
    fprintf(stderr, "failed to create session: %s\n",
                    sp_error_message(error));
    return;
}

error = sp_session_login(session, "USERNAME", "PASSWORD", 1, blob);
if (SP_ERROR_OK != error) {
    fprintf(stderr, "failed to log in to Spotify: %s\n",
                    sp_error_message(error));
    sp_session_release(session);
    exit(4);
}

sp_connectionstate cs = sp_session_connectionstate (session);

ユーザー名とパスワードが (偽または正しい) に関係なく、sp_session_login は常に SP_ERROR_OK を返します。sp_session_connectionstate で接続状態を確認すると、常に SP_CONNECTION_STATE_LOGGED_OUT が返されます。

ここで何が間違っているのかわかりません。また、通常のチャネルを通じて関連する回答が見つからないようです。

4

1 に答える 1

1

APIは非同期です。sp_session_loginすぐに戻り、ログインプロセスはバックグラウンドで続行されます。APIに付属している例を見てください。を呼び出すには、ある種のイベントループが必要ですsp_session_process_events。そうしないと、libspotifyは作業を完了せず、logged_inコールバックを受信するまで待つ必要があります。

于 2013-01-17T14:36:29.117 に答える