当我暂停播放器后更改currentTime
AVAudioPlayer
时,它会产生滞后(一些时间为正,一些时间为负)。
[self.bookAudioPlayer pause];
[self.bookAudioPlayer setCurrentTime:[currentPage.audioStartTime doubleValue]];
[self.bookAudioPlayer prepareToPlay];
当我打印currentTime
和audioStartTime
时,它会打印略有差异的值。例如,
audioStartTime:2.203665,currentTime:2.194286
audioStartTime:137.521347,currentTime:137.508571
我尝试使用以下代码修复它,但结果保持不变。
- (void)fixSetCurentTime:(NSTimeInterval)newTime {
self.currentTime = newTime;
if (self.currentTime != newTime) {
[self prepareToPlay];
self.currentTime = newTime;
}
}
有没有人遇到过这个问题?任何可能修复的指针?
答案 0 :(得分:3)
请注意,MP3音频帧的长度约为26毫秒。因此,基于块的音频压缩格式仅在时间量化的块边界上(可重新)启动...并且最近的块开始可能更早(或更晚)。
信用:Apple开发者论坛用户(Reference)