【问题标题】:AudioKit 5 iOS Current Playback TimeAudioKit 5 iOS 当前播放时间
【发布时间】:2021-04-08 15:46:54
【问题描述】:

您好 AudioKit 用户,

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

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

例如:

let duration = player.duration

总是给出文件的总时间。

查看来自 AKAudioPlayer 的旧代码,它似乎有一个“currentTime”属性。

迁移指南 (https://github.com/AudioKit/AudioKit/blob/v5-main/docs/MigrationGuide.md) 提到了旧版本中的一些可能有用的类,但是“AKTimelineTap”没有替代品,没有开发人员提供的 cmets……很好。

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

我还查看了 Audio Kit 5 的 Cookbooks,但这是用于添加效果和节点,不一定用于播放显示等。

感谢您对新版 AudioKit 的任何帮助。

【问题讨论】:

    标签: ios swift audio audiokit


    【解决方案1】:

    你可以在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
    

    【讨论】:

    • 谢谢,我试试看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-25
    • 1970-01-01
    相关资源
    最近更新 更多