Android 上的 libspotify 从未调用“登录”回调
Posted
技术标签:
【中文标题】Android 上的 libspotify 从未调用“登录”回调【英文标题】:"Logged in" callback never called by libspotify on Android 【发布时间】:2012-08-06 11:42:16 【问题描述】:我正在围绕 android 上的 libspotify 编写 NDK 包装器。但是 sp_session_callbacks::logged_in 回调从未调用过。
这是跟踪文件的内容:
libspotify trace from 12.1.51.g86c92b43 Release Android-arm
< sp_session_create() = 0
> sp_session_login(0x240ea8 'moodstream1@gmail.com' '<hidden>' 0) on 0x400fc4c8
这是通过 sp_session_callbacks::log_message 回调收到的日志。
13:30:07.361 I [offline_authorizer.cpp:297] Unable to login offline: no such user
13:30:07.372 I [ap:1752] Connecting to AP ap.spotify.com:4070
13:30:07.382 I [network.cpp:438] Connecting to 193.182.8.10:4070
13:30:07.526 I [ap:1226] Connected to AP: 193.182.8.10:4070
如您所见,会话已正确创建。
我已经在真实设备和模拟器上进行了测试。结果是一样的。有什么想法吗?
【问题讨论】:
问题解决了。请参阅下面的前三个 cmets。 【参考方案1】:问题可能是他们没有正确驱动 libspotify。这是人们常见的问题之一。
具体来说,监听 notify_main_thread 回调很重要。这表明 libspotify 需要处理来自 GUI 主线程的一些数据。
sp_session_process_events 然后应该从 GUI 主线程调用。 sp_session_process_events 也必须根据返回的 next_timeout 值定期调用
常见问题解答涵盖此https://developer.spotify.com/technologies/libspotify/faq/,sp_shell 示例用作说明。
【讨论】:
【参考方案2】:您能提供一个显示此类错误的代码 sn-p 吗?通过快速测试(使用 spshell 示例),我得到了在 Android 上正确调用的 logged_in 回调。
【讨论】:
【参考方案3】:正如 daek 所说,从跟踪文件的输出来看,您似乎没有使用 sp_session_process_events() 驱动 libspotify 事件处理并收听 notify_main_thread 回调。
正确实施后,您应该能够不时在跟踪文件日志中观察到“sp_session_process_events”行。
【讨论】:
以上是关于Android 上的 libspotify 从未调用“登录”回调的主要内容,如果未能解决你的问题,请参考以下文章
libspotify API:如何使用 libspotify API 检索封面艺术?