class Testing{
public static void main(String[] args) {
Animal d = new Dog();
/*This is totally legal, calling
the method run is no problem
because it is defined inside
the Animal class: */
d.run();
/*Compliler Error! Calling
the method bark results
in an error because it is
not defined in the Animal
class: */
d.bark();
}
}
的{{1}}属性始终使用 Twilio 音频网址返回duration
。但是,音频播放正常。
我能够获得除Twilio之外的所有其他音频网址的AVPlayer.currentItem
属性。
测试此问题的网址示例:
NAN
以下是我尝试过的不同方法:
duration
对此有任何帮助表示赞赏。
我已通过浏览器请求http://api.twilio.com/2010-04-01/Accounts/AC1db6911efe574fc890ee332f140f7e8c/Recordings/RE06adfbfd2ad2cfd5d95585ff91cb3b88.mp3
并返回所有详细信息,包括音频持续时间if (avPlayer.currentItem.status.rawValue == AVPlayerStatus.ReadyToPlay.rawValue) {
var asset = AVURLAsset(URL: sourceURL, options: nil)
var duration: Float64 = CMTimeGetSeconds(asset.duration)
println(duration)
}
if (avPlayer.currentItem.status.rawValue == AVPlayerStatus.ReadyToPlay.rawValue) {
var duration: Float64 = CMTimeGetSeconds(self.avPlayer.currentItem.duration)
println(duration)
}
var thePlayerItem = self.avPlayer.currentItem
if thePlayerItem.status.rawValue == AVPlayerStatus.ReadyToPlay.rawValue{
println(CMTimeGetSeconds(thePlayerItem.duration))
println(CMTimeGetSeconds(thePlayerItem.asset.duration))
}
GET
响应:
<Duration>37</Duration>
答案 0 :(得分:7)
我遇到了同样的问题,但我能够通过以下方式获得持续时间:
let timeRange = self.avPlayer.currentItem.loadedTimeRanges[0].CMTimeRangeValue
let duration = CMTimeGetSeconds(timeRange.duration)
希望这有帮助!
答案 1 :(得分:1)
我终于找到了原因。实际上,我试图获得持续时间的歌曲没有设置元数据,这就是为什么它给予Nan持续时间。 AVPlayerItem使用load-asynchronous with keys方法异步加载数据,当数据存在时,您将在avplayer的当前Item属性中获取它。
顺便说一句,使用loadedTimeRanges [0] .rangeValue.duration不是计算总持续时间的正确方法,因为这个值每秒都会更新,直到整个数据都没有加载。对于较短的数据,它有时可以正常工作,因为它一次性加载整个数据,当您使用loadedtimeinranges.rangeValue.duration属性时,它会为您提供正确的结果,但对于较大的数据,这不是正确的解决方案。
如果你想看看你的问题是否与元数据有关,只需流式传输任何在线mp3文件并检查问题是否仍然存在,它应该适用于流式传输任何下载的文件或任何远程文件,如果它有使用它设置的元数据,应该给你正确的持续时间。希望这有助于!!
答案 2 :(得分:0)
嘿,我只是这样做,事实上,当我使用.duration
时,使用推荐的 @inga {{1它返回错误的时间。但我改为loadedTimeRanges[0].rangeValue.duration
n并开始工作
twilio path without .mp3 extensio