我正在尝试熟悉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。
我没有看到我在这里做错了什么,也似乎无法通过常规渠道找到任何相关的答案。
答案 0 :(得分:1)
API是异步的。 sp_session_login
立即返回,登录过程在后台继续。查看API附带的示例。您需要某种事件循环来调用sp_session_process_events
,否则libspotify将无法完成任何工作,您可能希望等到收到logged_in
回调。