AVAudioPlayer的currentTime,deviceCurrentTime,playAtTime

时间:2012-05-22 06:49:05

标签: ios objective-c avaudioplayer

我正在研究AVAudioPlayer,但我对此感到困惑

  • currentTime
  • deviceCurrentTime
  • -playAtTime:

有人可以用一些示例代码解释一下吗?

2 个答案:

答案 0 :(得分:4)

初始化AVAudioPlayer后,"持续时间"是声音或音乐文件的长度,以秒为单位。

" currentTime的"是一个从一开始就在音乐文件中的位置。你可以在播放音乐时读取currentTime,它会告诉你音乐的播放距离。您可以在播放声音的任何时候设置currentTime,它将立即从更改的时间播放。例如,要跳过10秒,只需写

myAudioPlayer.currentTime += 10.0;

您可以在音频播放器暂停或未启动时设置currentTime,并改变音乐中下一个播放"的位置。命令将播放。

" currentDeviceTime"是完全不同的东西,它与" playAtTime"一起使用。让你在你想要的时候开始准确地演奏,或者同时开始两个声音。

最好想象一下手机的扬声器有一个内置时钟,可能会返回与正常时钟不同的时间。 " currentDeviceTime"根据扬声器的时钟返回当前时间。如果你打电话

[myAudioPlayer startPlayAt:myAudioPlayer.currentDeviceTime + 10.0];

a" play"命令将在十秒后启动。 currentDeviceTime与你的音乐文件无关,它只是一个时钟。天知道为什么苹果公司还没有使用例如dispatch_time_t,这应该可以正常工作。

答案 1 :(得分:2)

currentTime是设置玩家当前时间的属性。因此播放器将从那时开始播放您的音频。

deviceCurrentTime是玩家正在玩或暂停的时间。如果您有两个玩家正在播放或暂停(未停止),那么设备时间将会增加,直到两个玩家都停止。如果任何人正在播放或暂停设备时间会增加。

playAtTime是从音频输出设备的时间轴中的指定点开始异步播放声音的方法。

有关此内容的更多讨论,请参阅Apple文档AVAudioPlayer,您将对这三个内容有所了解。