相同轨道的帧数不同

时间:2013-12-27 19:45:36

标签: spotify libspotify

在libspotify的jukebox.c示例中,我计算music_delivery回调中当前轨道的所有帧。当调用end_of_track时,每次播放相同音轨时帧数都不同。所以在歌曲结束几秒后调用end_of_track。每次播放的时间跨度都不同。

如何判断这首歌是否真的结束了?我是否必须在几秒钟内拍摄歌曲的持续时间并将其与采样率相乘以在歌曲结束时注意?

为什么交付的帧数超过了赛道所需的数量?为什么end_of_track没有被称为真正的结局?或者我错过了什么?

1 个答案:

答案 0 :(得分:0)

当libspotify完成为该轨道传送音频帧时,将调用

end_of_track。这是关于播放的 not 信息 - 我见过的每个播放实现都在libspotify和声音驱动程序之间保留一个内部缓冲区。

根据您的计算地点,这将考虑您所看到的差异。由于音频代码不在libspotify中,因此您需要自己跟踪实际进入声音驱动程序的内容并停止播放,跳到下一首曲目或相应的任何操作。 end_of_track基本上是为了让您知道您可以关闭从交付回调到音频代码或其他内容的任何输出流。