gpt4 book ai didi

ios - AVAudioEngine 求歌曲时间

转载 作者:可可西里 更新时间:2023-11-01 06:20:36 26 4
gpt4 key购买 nike

我正在使用 AVAudioPlayerNode 播放歌曲,我正在尝试使用 UISlider 来控制它的时间,但我无法弄清楚如何使用 AVAUdioEngine.

最佳答案

经过反复试验,我想我终于弄明白了。

首先您需要计算文件的采样率。为此,请获取 AudioNode 的最后渲染时间:

var nodetime: AVAudioTime  = self.playerNode.lastRenderTime
var playerTime: AVAudioTime = self.playerNode.playerTimeForNodeTime(nodetime)
var sampleRate = playerTime.sampleRate

然后,将您的采样率乘以以秒为单位的新时间。这将为您提供您想要启动播放器的歌曲的确切帧:

var newsampletime = AVAudioFramePosition(sampleRate * Double(Slider.value))

接下来,您将要计算音频文件中剩余的帧数:

var length = Float(songDuration!) - Slider.value
var framestoplay = AVAudioFrameCount(Float(playerTime.sampleRate) * length)

最后,停止您的节点,安排新的音频片段,然后再次启动您的节点!

playerNode.stop()

if framestoplay > 1000 {
playerNode.scheduleSegment(audioFile, startingFrame: newsampletime, frameCount: framestoplay, atTime: nil,completionHandler: nil)
}

playerNode.play()

如果您需要进一步的解释,我在这里写了一个简短的教程:http://swiftexplained.com/?p=9

关于ios - AVAudioEngine 求歌曲时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29954206/

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