【问题标题】:How to use the libspotify api?如何使用 libspotify api?
【发布时间】:2013-07-02 03:40:49
【问题描述】:

这是我下载的 libspotify 版本:libspotify-12.1.51-win32-release。有一个名为“spshell”的示例。 当我测试曲目播放并调用 sp_session_player_play(g_session, 1) 时,我听不到任何声音。

另外一个问题,notify_main_thread和sp_session_process_events是什么关系。当调用sp_session_process_events(sp_session *session, int *next_timeout)时实际做了什么,第二个参数的作用是什么。

【问题讨论】:

    标签: libspotify


    【解决方案1】:

    我根本不相信 spshell 演示流音乐。

    sp_session_player_play 指示 libspotify 开始为您提供音频数据。它不会为您播放。您必须为 spotify 提供一个music_delivery 回调来接收音频数据,然后您必须自己安排播放。看点唱机的例子。

    当 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 时。

    【讨论】:

      猜你喜欢
      • 2012-06-05
      • 2013-07-14
      • 2014-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-08
      相关资源
      最近更新 更多