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의 관계는 무엇입니까? sp_session_process_events (sp_session * session, int * next_timeout) 실제로 호출 된 내용과 두 번째 매개 변수의 영향은 무엇입니까?

답변

2

나는 spshell 데모가 음악을 전혀 스트림하지 않는다고 생각합니다.

sp_session_player_play는 오디오 데이터 제공을 libspotify에 시작하도록 지시합니다. 그것은 당신을 위해 그것을 재생하지 않습니다. 음성 데이터를 수신하려면 music_delivery 콜백이 포함 된 spotify를 제공해야하며 직접 재생해야합니다. 주크 박스 예제를보십시오.

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가 호출 된 경우입니다.

관련 문제