ios - AVPlayer 持续时间是 NAN 与 Twilio

标签 ios iphone swift twilio avplayer

duration AVPlayer.currentItem的属性(property)正在返回 NAN始终使用 Twilio 音频网址。但是,音频播放正常。

我能够得到 duration除 Twilio 之外的所有其他音频 URL 的属性。

测试此问题的示例网址:

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>

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)

希望这对您有所帮助!

关于ios - AVPlayer 持续时间是 NAN 与 Twilio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32451477/

相关文章:

ios - 如何使用 Alamofire 在请求正文中上传图像文件?

iphone - 这些真的是我最终为 iPhone 编程需要采取的步骤吗?

ios - 在 AppDelegate 之外,我如何在基本上 `performSegueWIthIdentifier` 之前在 UINavigationController 中包含一个 UIViewController?

ios - 导航栏出现黑色?

iOS从应用程序内转到设置应用程序

ios - 自动添加的 URL 末尾的 AFNetworking 斜杠

后台运行的 iOS 应用程序

json - 从选择图像或按钮获取 JSON url 到 Swift 4 中的字符串

iphone - 缩放和更改 anchor

c - 在 Swift 中从 C 回调修改值 char** 并避免 EXC_BAD_ACCESS