这是我下载的libspotify版本:libspotify-12.1.51-win32-release。有一个名为“spshell”的示例。 当我测试音轨并且调用sp_session_player_play(g_session,1)时,我听不到任何声音。
另一个问题是,notify_main_thread和sp_session_process_events.shhen之间的关系是什么sp_session_process_events(sp_session * session,int * next_timeout)被称为实际执行的内容以及第二个参数的影响。
答案 0 :(得分:2)
我不相信spshell演示可以传播音乐。
sp_session_player_play指示libspotify开始为您提供音频数据。它不适合你。您必须使用music_delivery回调提供spotify才能接收音频数据,然后您必须自行安排播放。查看自动点唱机示例。
当libspotify需要在主线程上调用sp_session_process_events时,将调用notify_main_thread。你的回调应该执行唤醒主线程所需的任何通知,然后返回而不等待它。您不能从回调中调用sp_session_process_events,否则您将使程序死锁。
当调用sp_session_process_events时,libspotify将执行必须在主线程上执行的必要处理,例如更新用户可见的数据结构。 second parameter是输出参数。当sp_session_process_events返回时,指向的值是您下次需要调用sp_session_process_events之前的时间(以毫秒为单位)。因此,您可能需要调用sp_session_process_events有两个原因:在超时过后,或者调用了notify_main_thread时。