使用MPMusicPlayerController,设置musicPlayer.currentPlaybackTime寻求但需要第二生效

StackOverflow https://stackoverflow.com/questions/2379165

我有一个UISlider充当洗涤器。由于拇指是拖我执行以下命令:

- (void) _seekTo:(double)playbackTime {
     mPlayer.currentPlaybackTime = playbackTime;
}

这工作得很好,音乐寻求前进。在释放拇指,我重新启动的NSTimer发送实时更新,以保持UISlider同步。问题是,在释放拇指,最初的几个回调包含以前的时间值。这会导致拇指返回新值之前跳回到原来的位置。很不雅观。

任何人有这种行为和方式,整顿的经验吗?我可以提供一个样本项目,如果你想这种异常情况说明了这一点。

有帮助吗?

解决方案

也许是因为目前已经解码的缓冲区中的数据,当你开始寻找。你寻求一分钟前,但有音频的几毫秒的缓冲,而当这些水桶玩,玩家报告文件中的位置的电流。只有这样,从更新的位置来新桶和标志开始出现。 (只是一种理论。)

你不能简单地过滤由手中间数据?你知道你有多少使用滑块跳了,所以也许你可以保存新的位置为一个变量,忽略球员的更新,直到他们得到舒适,靠近新的滑块位置。 (希望是有道理的。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top