C语言 在播放轨道后使用sp_session_logout进行段故障



如果我在播放歌曲后尝试调用sp_session_logout,我会得到一个分割错误。我真的不能说太多关于段断层,因为我没有符号

使用以下代码,每次调用logout后都会发生段错误https://gist.github.com/ivankelly/5564318

#0  0x00007ffff7ac5746 in ?? () from /home/ivan/Apps/lib/libspotify.so.12
#1  0x00007ffff7a38289 in ?? () from /home/ivan/Apps/lib/libspotify.so.12
#2  0x00007ffff7a38535 in ?? () from /home/ivan/Apps/lib/libspotify.so.12
#3  0x00007ffff7a39b5a in ?? () from /home/ivan/Apps/lib/libspotify.so.12
#4  0x00007ffff7a39c86 in ?? () from /home/ivan/Apps/lib/libspotify.so.12
#5  0x00007ffff79fbc8b in ?? () from /home/ivan/Apps/lib/libspotify.so.12
#6  0x00007ffff7ad05b3 in sp_session_process_events () from /home/ivan/Apps/lib/libspotify.so.12
#7  0x0000000000401986 in main (argc=3, argv=0x7fffffffe6f8) at /home/ivan/src/spotify_test/test_spotify.c:137
这是在libspotify 12.1.51 (x86_64)的debian侧。

您在libspotify回调中调用注销,特别是与音乐交付相关的回调。音乐传递回调发生在它们自己的线程上,libspotify 不是像这样的线程安全——你必须在"主"线程上调用所有api(具体来说,就是你调用sp_session_create的线程)。

当您的test_spotify_end_of_track回调被触发时,您的崩溃很可能通过不调用logout来修复,或者当它被发送到主线程并在那里调用logout。

相关内容

  • 没有找到相关文章

最新更新