我正在努力熟悉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。
我看不出我在这里做错了什么,而且似乎也无法通过常规渠道找到任何相关的答案。
发布于 2013-01-17 22:36:29
API是异步的。sp_session_login立即返回,登录过程在后台继续。请看该API附带的示例。您需要某种类型的事件循环来调用sp_session_process_events,否则libspotify将不会完成任何工作,并且您可能希望等到收到logged_in回调。
https://stackoverflow.com/questions/14336234
复制相似问题