AudioKit 5 iOS当前播放时间



各位AudioKit用户,

我正在尝试设置带有播放时间指示的AudioKit 5,但遇到了问题。

如果我使用AudioPlayer的duration属性,这是音频文件的总时间,而不是当前播放时间。

例如:

let duration = player.duration

始终提供文件的总时间。

看看AKAudioPlayer的旧代码,它似乎有一个";currentTime";所有物

迁移指南(https://github.com/AudioKit/AudioKit/blob/v5-main/docs/MigrationGuide.md)提到了旧版本中一些可能有用的类;AKTimelineTap";没有替代品,也没有来自开发人员的评论。。。美好的

也仍然不确定如何操作当前播放时间。。。

我还查看了音频工具包5的食谱,但这是为了添加效果和节点,不一定是为了播放显示等

感谢您对新版AudioKit的帮助。

您可以在AudioPlayer中找到playerNode,它是AVAudioPlayerNode类。

使用lastRenderTime和playerTime,可以计算当前时间。

例如:

// get playerNode in AudioPlayer.
let playerNode = player.playerNode
// get lastRenderTime, and transform to playerTime.
guard let lastRenderTime = playerNode.lastRenderTime else { return }
guard let playerTime = playerNode.playerTime(forNodeTime: lastRenderTime) else { return }

// use sampleRate and sampleTime to calculate current time in seconds.
let sampleRate = playerTime.sampleRate
let sampleTime = playerTime.sampleTime
let currentTime = Double(sampleTime) / sampleRate

最新更新