无法使用 sp_session_relogin (libspotify)
Posted
技术标签:
【中文标题】无法使用 sp_session_relogin (libspotify)【英文标题】:Failed to use sp_session_relogin (libspotify) 【发布时间】:2012-05-08 17:52:31 【问题描述】:我的问题很简单: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;
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_session_remembered_user 正确返回我的用户名。注销后,我正在等待使用 sp_session_process_events 调用处理事件的注销回调。调用注销回调时,_loggedin 变为 false,因此循环结束。我释放会话。相当的应用程序。
您是否看到另一个错误或缺少的东西?有什么想法吗?
谢谢。
【问题讨论】:
【参考方案1】:当您退出应用程序时,请确保调用sp_session_logout()
并等待注销完成回调被触发,然后才允许应用程序终止。否则你可能会得到一个不完整的缓存,这将导致sp_session_relogin()
失败。
【讨论】:
感谢您的回答,但似乎我仍然错过了一些东西。我更新了我的问题以解释我如何注销并退出我的应用程序。 我找到了您的 Viva spotify 播放器...我会查看它以尝试了解我缺少什么,但此时我没有找到。不确定我是在开始时(当我尝试重新登录时)还是在结束时(当我注销时)丢失。 我发现我的问题:只是无法创建设置文件夹,因为它不包含现有目录。我创建了路径及其所有目录,现在可以了。再次感谢 iKendac。以上是关于无法使用 sp_session_relogin (libspotify)的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 StorageClass 配置卷 - 无法获取存储帐户的存储密钥
Worklight Studio 和本地开发,有时无法使用 Java 类,有时无法使用 HTML 文件