Twilio记录返回负持续时间值“-1”

时间:2015-08-11 15:05:46

标签: ruby-on-rails ruby twilio

我正面临关于通话结束后的录音持续时间的问题。 一旦呼叫完成,我们就会找到录音并获得持续时间,但我们正在接收下面片段中的r.duration负值,即“-1”而不是以秒为单位返回持续时间。

client = Twilio::REST::Client.new(TWILIO["ACCOUNT_SID"],TWILIO["ACCOUNT_TOKEN"])
call = client.account.calls.get(call_sid)
if call.present?
  call.recordings.list.each do |r|
  consultation_duration = (r.duration.to_i/60).to_f
  #downloading the recording logic
  r.delete
  end
end

任何人都可以让我知道导致Twilio返回负片持续时间的原因是什么。

2 个答案:

答案 0 :(得分:0)

Twilio开发者传道者在这里。

我认为这是因为你已经在几秒钟内将这个数字除以60。您可以将代码更改为以下内容,无论如何它都会在几秒钟内为您提供duration

client = Twilio::REST::Client.new(TWILIO["ACCOUNT_SID"],TWILIO["ACCOUNT_TOKEN"])
call = client.account.calls.get(call_sid)
if call.present?
  call.recordings.list.each do |r|
  consultation_duration = r.duration
  #downloading the recording logic
  r.delete
  end
end

如果电话持续30秒,要解释一下,你要将它除以60,这可能会让你在投射后看到你所看到的行为。

如果您想转换为HH:MM:SS之类的东西,您可以更改代码以执行以下操作:

t = 33 # seconds
Time.at(t).utc.strftime("%H:%M:%S")

这会给你一个很好的格式化时间:

  

0点00分33秒

希望这有助于你

答案 1 :(得分:0)

Twilio为尚未完成的录音返回负片持续时间。这意味着呼叫仍在进行中,并且尚未指定最终持续时间。