AVPlayer持续时间是与Twilio南

AVPlayer.currentItemduration属性始终使用TwilioaudioURL返回NAN 。 但是,audio播放良好。

我能够获得比Twilio所有其他audioURL的duration属性。

示例url来testing这个问题:

 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 ,并且返回了包括audio持续时间<Duration>37</Duration>所有细节

 GET /2010-04-01/Accounts/ACda6f1.../Recordings/RE557ce644e5ab84fa21cc21112e22c485.xml 

响应:

 HEADERS Access-Control-Allow-Credentials: true Access-Control-Allow-Headers: Accept, Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since Access-Control-Allow-Methods: GET, POST, DELETE, OPTIONS Access-Control-Allow-Origin: * Access-Control-Expose-Headers: ETag Connection: keep-alive Content-Length: 550 Content-Type: application/xml Date: Tue, 08 Sep 2015 06:50:43 GMT Etag: b1512f.. Last-Modified: Fri, 04 Sep 2015 04:19:20 +0000 Strict-Transport-Security: max-age=15768000 X-Powered-By: AT-5000 X-Shenanigans: none BODY view raw <?xml version='1.0' encoding='UTF-8'?> <TwilioResponse> <Recording> <Sid>RE…</Sid> <AccountSid>ACda6f1... </AccountSid> <CallSid>CA3..</CallSid> <Duration>37</Duration> <DateCreated>Fri, 04 Sep 2015 04:19:20 +0000</DateCreated> <ApiVersion>2010-04-01</ApiVersion> <DateUpdated>Fri, 04 Sep 2015 04:19:20 +0000</DateUpdated> <Price/> <Uri>/2010-04-01/Accounts/ACda6f1.../Recordings/RE557ce644e5ab84fa21cc21112e22c485.xml</Uri> </Recording> </TwilioResponse> 

我有同样的问题,但我可以通过执行以下操作来获得持续时间:

 let timeRange = self.avPlayer.currentItem.loadedTimeRanges[0].CMTimeRangeValue let duration = CMTimeGetSeconds(timeRange.duration) 

希望这可以帮助!