gpt4 book ai didi

ios - AVAudioPlayer.currentTime 在更改速率时给出错误的值

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:18:38 25 4
gpt4 key购买 nike

当我更改其中一个 AVAudioPlayerrate 并稍后调用 currentTime 时,我得到了错误的值。这是为什么?

例如,这段代码没有像我期望的那样工作:

AVAudioPlayer* myAudio = //set up AVAudioPlayer
myAudio.enableRate = YES;
myAudio.rate = 1.2;

[myAudio play];

// Wait 3 seconds

myAudio.currentTime; //Returns a value significantly larger than 3.0

最佳答案

当您调用 AVAudioPlayer.currentTime 时,如果它是 rate,它会返回音频播放的距离。是1.0 .当您更改 rate , currentTime 的值返回按比例变化。

换句话说,AVAudioPlayer.duration更改时不会更改 rate , 和 myAudioPlayer.currentTime / myAudioPlayer.duration将始终告诉您播放了音频文件的哪一部分。因此,如果您在播放一半的音频文件时对该表达式求值,它将大致返回 0.5。 ,无论利率是多少。

这意味着如果 myAudio.rate < 1.0 , myAudio.currentTime将始终返回一个小于用户收听音频的时间的值。相反,如果 myAudio.rate > 1.0 , myAudio.currentTime将始终返回一个比用户收听的时间更长的值。

如果你想得到用户听了多长时间,你可以很容易地计算出来:myAudio.currentTime / myAudio.rate .

关于ios - AVAudioPlayer.currentTime 在更改速率时给出错误的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22443036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com