【发布时间】:2014-12-19 18:50:34
【问题描述】:
我正在使用libspotify SDK,win32 的 C 库。
我认为有一个正确的设置,每个会话回调都被注册。我不明白为什么我不能接到end_of_track 的电话,而music_delivery 继续以零填充22050 长帧被调用。
我尝试开始播放,首先加载带有sp_session_load 的曲目;直到它返回 SP_ERROR_IS_LOADING 我在我的消息队列上发布一条消息(我使用的同步方法,PostMessage win32 API),以便使用相同的 API sp_session_load 再次重新加载。只要它返回SP_ERROR_OK,我就会使用sp_session_play,而music_delivery 会立即以正确的帧开始。
我不知道为什么在跟踪 libspotify 运行时结束时开始发送零填充帧,而不是调用 end_of_track 回调。
在其他条件下,它可以完美运行:我使用了从专辑浏览中获得的sp_track,因此在我加载到当前会话进行播放时,曲目已完全加载:使用此曲目,end_of_track 可以正常工作正确调用。在填充错误的情况下,我使用它的 Spotify URI 搜索轨道并得到结果;在这种情况下,曲目元数据还没有准备好(在播放尝试时),所以我在sp_session_load 和PostMessage 上使用了这种“轮询”。
有人可以帮助我吗?
【问题讨论】:
标签: libspotify