我正面临关于通话结束后的录音持续时间的问题。 一旦呼叫完成,我们就会找到录音并获得持续时间,但我们正在接收下面片段中的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返回负片持续时间的原因是什么。
答案 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为尚未完成的录音返回负片持续时间。这意味着呼叫仍在进行中,并且尚未指定最终持续时间。