AVAudioPlayer获取iOS 10中错误的文件时长

6

我正在使用AVAudioPlayer对象加载音频文件。

我已经检查了两个浏览器,1)chrome得到了准确的持续时间。而2)Safari获取到的文件持续时间不正确。

我们按照以下方式使用代码:

let soundData =  NSData(contentsOf: url as URL)
self.player = try AVAudioPlayer(data: soundData! as Data)                   
self.player.delegate = self
let currentSecond = self.player.duration

//Second Option we had tried.
 let assets = AVURLAsset(url: url as URL, options: [
 AVURLAssetPreferPreciseDurationAndTimingKey : Int(true)])
 var t = Float()
 t = Float(CMTimeGetSeconds(assets.duration))
 print(t)

在这里输入图片描述

有什么建议吗? 或者我漏掉了什么吗? 请指导我。


你找到解决方案了吗?我在iOS 10和mac Sierra中也遇到了同样的问题,而在iOS 11和mac high sierra中却可以正常工作。这是苹果团队在更新中解决的一些错误吗? - SJ3040
1个回答

2
尝试在获取时长之前调用player.prepareToPlay()

这是一个奇怪的 bug,但调用它可以解决问题... - cs guy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接