Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用AVplayer-Swift获取音频持续时间_Ios_Swift_Avplayer - Fatal编程技术网

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

Ios 使用AVplayer-Swift获取音频持续时间,ios,swift,avplayer,Ios,Swift,Avplayer,我正在尝试在我的应用程序上显示我的音频文件持续时间,但我的代码始终返回0。我希望有一种方法可以在AVplayer从文件中获取数据时通知我,然后我可以调用我的代码来获取数据。有什么建议吗 func loadAudioUrl() { guard let url = URL(string: sampleShortAudioUrl) else {return} audioPlayer = AVPlayer(url: url) audioPlayer?.play()

我正在尝试在我的应用程序上显示我的音频文件持续时间,但我的代码始终返回0。我希望有一种方法可以在AVplayer从文件中获取数据时通知我,然后我可以调用我的代码来获取数据。有什么建议吗

    func loadAudioUrl() {

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

    audioPlayer = AVPlayer(url: url)

    audioPlayer?.play()

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

您无法从远程音频url获取持续时间,您必须将其远程存储在数据库中,并在侦听或下载时绘制它的持续时间

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

您需要将AVPlayerItem与AVPlayer一起使用。 当AVPlayerItem状态准备好播放时,您可以询问持续时间。完整的代码示例来自苹果公司,如下所示: