这是我下载的libspotify版本:libspotify-12.1.51-win32-release.有一个名为"spshell"的例子。当我测试曲目播放并调用sp_session_player_play(g_session,1)时,我听不到任何声音。
另一个问题是,notify_min_thread和sp_sessionprocess_events之间的关系是什么。当调用sp_session_process_events(sp_session*session,int*next_timeout)时,实际完成了什么以及第二个参数的效果是什么。
我根本不相信spshell演示会播放音乐。
sp_session_player_play指示libspotify开始向您提供音频数据。它不适合你。您必须为spotify提供music_dedelivery回调以接收音频数据,然后您必须安排自己播放。看看自动存储塔的例子。
当libspotify需要在主线程上调用sp_sessionprocess_events时,会调用notify_min_thread。回调应该执行唤醒主线程所需的任何通知,然后在不等待的情况下返回。您不能从回调中调用sp_session_process_events,否则将使程序死锁。
当调用sp_session_process_events时,libspotify将在主线程上执行必要的处理,例如更新用户可见的数据结构。第二个参数是输出参数。sp_session_process_events返回时,指向的值是以毫秒为单位的时间,直到您下次需要调用sp_session_pprocess_events为止。因此,您可能需要调用sp_session_process_events有两个原因:在该超时过后,或者在调用notify_min_thread时。