Login 无法使用sp_会话_重新登录(libspotify)
我的问题很简单:sp_session_relogin是如何工作的 下面是我如何尝试使用它Login 无法使用sp_会话_重新登录(libspotify),login,spotify,Login,Spotify,我的问题很简单:sp_session_relogin是如何工作的 下面是我如何尝试使用它 bool login(const char* login, const char* password, bool remember) { if (remember) { sp_error err = sp_session_relogin(_session); if (err==SP_ERROR_OK) { return true;
bool login(const char* login, const char* password, bool remember)
{
if (remember) {
sp_error err = sp_session_relogin(_session);
if (err==SP_ERROR_OK) {
return true;
}
if (!login||!password) {
return false;
}
}
sp_session_login(_session, login, password, remember, NULL);
return true;
}
我第一次打电话给我的申请
login(0,0,true);
如果它返回false,我会这样回忆它
login(username,password,true);
(用户名和密码从UI中检索)。
然后,如果我关闭应用程序并重新启动它,那么第一个登录调用将继续返回false
根据iKenndac的答案编辑
我正在调用sp_session_logout(),但我没有等待调用注销回调。我有过,但没有更好。
下面是我的申请是如何结束的
if (_session) {
if (_loggedin) {
char buffer[1024];
int ret = sp_session_remembered_user(_session,buffer,sizeof(buffer));
if (ret>0) {
printf("remembered user: %s\n",buffer);
}
sp_session_logout(_session);
int msTilNext = 0;
while(_loggedin) {
sp_session_process_events(_session, &msTilNext);
}
}
sp_session_release(_session);
_session = 0;
}
sp\u会话\u用户正确返回我的用户名。注销后,我正在等待注销回调调用带有sp_session_process_事件的processing event。调用注销回调时,_loggedin变为false,因此循环结束。我将发布会话。这是一个非常好的应用程序
你看到另一个错误或丢失的东西了吗?有什么想法吗
谢谢。退出应用程序时,请确保调用
sp\u session\u logout()
,并等待注销完成回调被触发,然后再允许应用程序终止。否则,您可能会得到一个不完整的缓存,这将导致sp\u session\u relogin()
失败。谢谢您的回答,但我似乎仍然错过了一些东西。我已经更新了我的问题来解释我是如何登录和退出我的应用程序的。我找到了你的Viva spotify播放器。。。我会看看它,试图了解我错过了什么,但在这个时候我没有找到。不确定我是在开始时(尝试重新登录时)还是在结束时(注销时)丢失。我发现我的问题:只是无法创建设置文件夹,因为它不包含现有目录。我创建了路径及其所有目录,现在一切正常。再次感谢iKenndac。