为什么不管延迟的值如何调用 audioplayer.play(atTime: delay) 都不发出声音

Elt*_*Lin 1 delay avaudioplayer swift xcode8

预计:

当 audioplayer.play(atTime: 1) 被调用时,计时器重置为 0,并且在第一秒播放音频播放器

现实:

我尝试了 delay = 0.000000001, 1, 100000000,但无论如何,都不会播放噪音。然而,代码被清楚地执行了(因为“函数被调用”出现在控制台中)

为什么会出现差异?

C = AVAudioPlayer() // assume other setups are done
C.play(atTime: 1)
print("function was called")
Run Code Online (Sandbox Code Playgroud)

Hil*_*tor 7

根据官方 API 参考(由我翻译成 swift 3):

宣言

func play(atTime time: TimeInterval) -> Bool
Run Code Online (Sandbox Code Playgroud)

参数

时间:

开始播放的绝对音频输出设备时间。您提供给时间参数的值必须大于设备的当前时间。您可以使用如下代码延迟播放开始:

let playbackDelay = 3.0              // must be ? 0
myAudioPlayer.play(atTime: myAudioPlayer.deviceCurrentTime + playbackDelay)
Run Code Online (Sandbox Code Playgroud)