1

我正在围绕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

如您所见,会话已正确创建。

我已经在真实设备和模拟器上进行了测试。结果是一样的。有任何想法吗?

4

3 回答 3

5

问题可能是他们没有正确驱动 libspotify。这是人们普遍存在的问题之一。

具体来说,监听 notify_main_thread 回调很重要。这表明 libspotify 需要处理来自 GUI 主线程的一些数据。

然后应该从 GUI 主线程调用 sp_session_process_events。sp_session_process_events 也必须根据返回的 next_timeout 值定期调用

常见问题解答涵盖此https://developer.spotify.com/technologies/libspotify/faq/并且 sp_shell 示例用作说明。

于 2012-08-27T08:37:47.347 回答
2

你能提供一个显示此类错误的代码片段吗?通过快速测试(使用 spshell 示例),我得到了在 Android 上正确调用的 logged_in 回调。

于 2012-08-26T19:09:47.680 回答
1

As daek says, and judging from the output to the tracefile, it seems you're not driving the libspotify event processing using sp_session_process_events() and listening to the notify_main_thread callback.

When correctly implemented you should be able to observe a "sp_session_process_events" line now and then in the tracefile log.

于 2012-08-27T11:33:42.017 回答