[英]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.