使用AVplayer获取音频持续时间 - Swift

时间:2018-01-04 23:51:52

标签: ios swift avplayer

我试图将我的音频文件持续时间显示在我的应用上,但我的代码总是返回0.我希望有一种方法可以在AV播放器从文件中获取数据时通知我,然后我可以调用我的之后的代码来获取数据。有什么建议吗?

    func loadAudioUrl() {

    guard let url = URL(string: sampleShortAudioUrl) else {return}

    audioPlayer = AVPlayer(url: url)

    audioPlayer?.play()

    if let duration = audioPlayer?.currentItem?.duration{
        print(duration)
    }
}

2 个答案:

答案 0 :(得分:0)

您无法从远程音频网址获取持续时间,您必须将其持续时间远程存储在数据库中,并在收听或下载时将其记录下来。 。

答案 1 :(得分:0)

您可以获得持续时间,但您需要等待,因为内容正在加载。您的代码假定它立即加载。

您需要将AVPlayerItem与AVPlayer一起使用。 当AVPlayerItem状态准备好播放时,您可以询问持续时间。 Apple的完整代码示例就在这里: AVPlayerItem