时移后的图书馆dirac3-le进度更新

时间:2014-06-06 13:19:47

标签: ios objective-c

我正在写一个简单的音乐播放器,可以改变歌曲的速度。作为一个时移图书馆我使用dirac3-le。由于某种原因,currentTime()仅返回0.所以我将函数bach反转为版本1.0。 (似乎mFramePositionInInputFile为0)。

-(NSTimeInterval)currentTime
{
    //return (NSTimeInterval)mFramePositionInInputFile / mSampleRate;

    // this was the code used in version 1.0:
    return (NSTimeInterval)mTotalFramesPlayed / mSampleRate;
}

完成此操作后,我可以像这样计算歌曲的总时间和当前时间(以分钟为单位):

    int totalMinutes = (int)self.player.fileDuration/60;
    int totalSeconds =(int)self.player.fileDuration % 60;
    self.songTotalTime.text = [NSString stringWithFormat:@"%i:%02i", totalMinutes, totalSeconds];

    int currentMinutes = (int)self.player.currentTime/60;
    int currentSeconds = (int)self.player.currentTime % 60;
    self.songCurrentTime.text = [NSString stringWithFormat:@"%i:%02i", currentMinutes, currentSeconds];

但是当我改变歌曲的速度时,时间以旧的速度返回。因此,速度提高两倍,时间仅为50%。与进度视图相同。

由于

1 个答案:

答案 0 :(得分:0)

" -currentTime使用ProcessingBeganCallback(),只在商业版的Dirac中支持。"

所以基本上我必须运行自己的实现。