各位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