繁体   English   中英

音频持续时间在AVQueuePlayer中返回nan

[英]Audio duration returns nan in AVQueuePlayer

当我尝试使用AVQueuePlayer从服务器播放.wav文件时,它返回持续时间为nan

我用这段代码来获取持续时间

audioPlayer.currentItem?.duration.seconds 
audioPlayer.currentItem?.asset.duration.seconds

我确信我使用的.wav文件没有被破坏,因为它被Android应用程序使用,他们能够获得持续时间。

下面我使用的代码完美适用于.mp3 但不是.wav

if let url = URL(string: urlString) {
            audioAsset = AVURLAsset.init(url: url)

            if let audioAsset = audioAsset {

                let keys = ["playable"]

                   audioAsset.loadValuesAsynchronously(forKeys: keys, completionHandler: {

                    let playableStatus = audioAsset.statusOfValue(forKey: keys[0], error: nil)
                    switch playableStatus {

                    case .unknown,  .loading,  .failed,  .cancelled:
                        return

                    case .loaded:

                        DispatchQueue.main.async {

                            let playerItem = AVPlayerItem.init(asset: audioAsset)
                            self.audioPlayer.insert(playerItem, after: nil)
                            self.audioPlayer.play()

                            })
                        }
                        break
                    }
                })
            }
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM