libspotify에 익숙해 지려고합니다. libspotify에 관한 문서가 심각하게 부족하다고 말해야합니다. 예제와 함께 작은 응용 프로그램을 해킹했지만 제대로 작동하지 않습니다.libspotify가 연결되지 않습니다.
Visual Studio 2012에 C 콘솔 응용 프로그램을 구축 중입니다. appkey가 정확합니다.
sp_session_config config;
sp_error error;
sp_session *session;
char *blob = NULL;
memset(&config, 0, sizeof(config));
config.api_version = SPOTIFY_API_VERSION;
config.cache_location = "tmp";
config.settings_location = "tmp";
config.application_key = g_appkey;
config.application_key_size = g_appkey_size;
config.user_agent = "SpotiTest";
error = sp_session_create(&config, &session);
if (SP_ERROR_OK != error) {
fprintf(stderr, "failed to create session: %s\n",
sp_error_message(error));
return;
}
error = sp_session_login(session, "USERNAME", "PASSWORD", 1, blob);
if (SP_ERROR_OK != error) {
fprintf(stderr, "failed to log in to Spotify: %s\n",
sp_error_message(error));
sp_session_release(session);
exit(4);
}
sp_connectionstate cs = sp_session_connectionstate (session);
는 상관없이 사용자 이름과 암호 (허위 또는 올바른) sp_session_login 항상 SP_ERROR_OK을 반환하지 않습니다. sp_session_connectionstate로 연결 상태를 확인할 때 항상 SP_CONNECTION_STATE_LOGGED_OUT을 반환합니다.
내가 여기서 잘못하고있는 것을 보지 못하고 있으며 일반 채널을 통해 관련 답변을 찾지 못하는 것 같습니다.
항상 idle 루프의 sp_session_process_events를 다음과 같이 호출해야합니까? while (1) { sp_session_process_events(); } [code] notify_main_thread [/ code] 콜백을 호출 할 때만 호출해야합니까? – Demigod
그보다 약간 더 복잡합니다. libspotify와 함께 제공되는 spshell과 같은 예제를 살펴보십시오. 'sp_session_process_events'를 호출 할 때마다 다시 호출하기 전에 대기 할 시간 (밀리 초)이 반환됩니다. 그 시간이 경과하거나'notify_main_thread'가 호출 될 때까지 기다려야합니다. 'sp_session_process_events'를 계속해서 돌리면 많은 CPU 시간이 낭비되고 다른 것들은 작동하지 않을 수도 있습니다. – Weeble