Cuando trato de reproducir un archivo .wav desde el servidor usando AVQueuePlayer, devuelve la duración como nan .
Usé este código para obtener la duración.
audioPlayer.currentItem?.duration.seconds audioPlayer.currentItem?.asset.duration.seconds Y estoy seguro de que el archivo .wav que estoy usando no está dañado, ya que la aplicación de Android lo usa y pueden obtener la duración.
El siguiente código que utilicé funciona perfectamente para .mp3 . pero no para .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 } }) } }