AVAudioPlayer currentTime滞后问题

时间:2014-05-05 07:33:38

标签: ios avaudioplayer nstimeinterval

当我暂停播放器后更改currentTime AVAudioPlayer时,它会产生滞后(一些时间为正,一些时间为负)。

[self.bookAudioPlayer pause];
[self.bookAudioPlayer setCurrentTime:[currentPage.audioStartTime doubleValue]];
[self.bookAudioPlayer prepareToPlay];

当我打印currentTimeaudioStartTime时,它会打印略有差异的值。例如,

  

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;
    }
}

有没有人遇到过这个问题?任何可能修复的指针?

1 个答案:

答案 0 :(得分:3)

请注意,MP3音频帧的长度约为26毫秒。因此,基于块的音频压缩格式仅在时间量化的块边界上(可重新)启动...并且最近的块开始可能更早(或更晚)。

信用:Apple开发者论坛用户(Reference