libspotify无法连接

时间:2013-01-15 10:57:47

标签: connection stub libspotify

我正在尝试熟悉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。

我没有看到我在这里做错了什么,也似乎无法通过常规渠道找到任何相关的答案。

1 个答案:

答案 0 :(得分:1)

API是异步的。 sp_session_login立即返回,登录过程在后台继续。查看API附带的示例。您需要某种事件循环来调用sp_session_process_events,否则libspotify将无法完成任何工作,您可能希望等到收到logged_in回调。