当遇到这个问题的时候,自己也是上网查了很多资料,可惜得到的答案并不全,这里根据自己的问题,给出相应的解决方案,希望能帮助大家。
刚开始的时候,我的slider只是监听了valuechange方法,直接去调用freestreamer提高的seekTopostion方法,导致音频没有声音,但是回掉的进度是正常的,我们需要更改slider的监听方法,如下代码,这样就能达到预期效果。
// touchDown
- (IBAction)audioProgresstouchBegain:(id)sender {
// 暂停定时器
}
// valuechange
- (IBAction)audioPrecessAction:(UISlider *)sender {
// 这里改变显示时长进度
}
// touchUpInSide
- (IBAction)audioProcessChangeEnd:(UISlider *)sender {
// 这里触发效果
toSeek...
}
但是坑位还是有的,freesteamer内部设置了最大缓存,等到音频过大的时候呢,就不会缓存的完整,导致你拖到进度条依然会重头播放,
我尝试更改了这个最大的缓存,但是好像不起什么效果,在github上也去查看可能的问题,但是都没有什么结果,而且它的注释对应的并不是对的,前面是字节数并不等于后面的MB.... 最后的最后,没有办法,我们的产品内音频有些还是挺大的,所以只能更换三方了,换了网上推荐的其他三方了。
并不是说freestreamer不好,只是我发现了这个问题,可能存在解决方案,但是这篇只是帮助同样存在这个问题的人。如果你们的需求音频比较小的时候呢,这个三方还是很完美的。