2013-07-01 2 views
0

Это версия libspotify, которую я загрузил: libspotify-12.1.51-win32-release. Есть пример с именем «spshell». , когда я тестирую воспроизведение трека и вызывается sp_session_player_play (g_session, 1), я не слышу голоса.Как использовать libspotify api?

Другой вопрос, какова связь между notify_main_thread и sp_session_process_events.when sp_session_process_events (sp_session * session, int * next_timeout) называется тем, что было сделано на самом деле, и каково влияние второго параметра.

ответ

2

Я не верю, что демо-версия spshell полностью воспроизводит музыку.

sp_session_player_play инструктирует libspotify, чтобы начать предоставлять вам аудиоданные. Он не играет за вас. Вы должны указать spotify с помощью обратного вызова music_delivery для получения аудиоданных, а затем вы должны организовать его воспроизведение самостоятельно. Посмотрите пример музыкального автомата.

notify_main_thread вызывается, когда libspotify требует вызова sp_session_process_events для основного потока. Ваш обратный вызов должен выполнять любое уведомление, необходимое для пробуждения основного потока, а затем вернуться, не дожидаясь его. Вы не должны вызывать 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 был вызван.