使用MPMusicPlayerController,设置musicPlayer.currentPlaybackTime寻求但需要第二生效
-
24-09-2019 - |
题
我有一个UISlider充当洗涤器。由于拇指是拖我执行以下命令:
- (void) _seekTo:(double)playbackTime {
mPlayer.currentPlaybackTime = playbackTime;
}
这工作得很好,音乐寻求前进。在释放拇指,我重新启动的NSTimer发送实时更新,以保持UISlider同步。问题是,在释放拇指,最初的几个回调包含以前的时间值。这会导致拇指返回新值之前跳回到原来的位置。很不雅观。
任何人有这种行为和方式,整顿的经验吗?我可以提供一个样本项目,如果你想这种异常情况说明了这一点。
解决方案
也许是因为目前已经解码的缓冲区中的数据,当你开始寻找。你寻求一分钟前,但有音频的几毫秒的缓冲,而当这些水桶玩,玩家报告文件中的位置的电流。只有这样,从更新的位置来新桶和标志开始出现。 (只是一种理论。)
你不能简单地过滤由手中间数据?你知道你有多少使用滑块跳了,所以也许你可以保存新的位置为一个变量,忽略球员的更新,直到他们得到舒适,靠近新的滑块位置。 (希望是有道理的。)
不隶属于 StackOverflow