【问题标题】:PHP - Twilio Recording Duration Value IssuePHP - Twilio 记录持续时间值问题
【发布时间】:2014-12-08 03:27:53
【问题描述】:

所以我正在创建一个允许用户通过 Twilio 录制消息的应用程序,并且我正在尝试在录制完成后立即将 RecordingSID、创建日期以及录制持续时间存储在 MySQLi 数据库中被制作。我已经设法通过使用 substr() 函数从 RecordingURL 中取出最后 34 位数字来获取 RecordingSID,并且我只是在我的数据库表中为创建日期字段获取今天的日期。但是,似乎无论实际录制多长时间,在尝试获取录制持续时间时,我都会不断获得 8 的值。这是我现在得到的(由于它们工作而省略了数据库插入):

<?php
    $recordingURL = $_REQUEST['RecordingUrl'];
    $recordingSID = substr($recordingURL, -34);

    date_default_timezone_set('EST');
    $dateCreated = date("Y-m-d");

    $duration = $_REQUEST['RecordingDuration'];
?>

在这件事上的任何帮助都会很棒!谢谢!

编辑:我还尝试了以下解决方案来代替我之前代码 sn-p 中的最后一行:

<?php
    $recordings = $client->account->recordings->getIterator(0, 50, array('Sid' => $recordingSID,));
    foreach ($recordings as $recording) 
    {
        $duration = $recording->duration;
    }
?>

【问题讨论】:

  • 是在插入数据库时​​变为 8,还是在 $duration 行变为 8。你确定你正在发送正确的值作为 RecordingDuration 参数...你的代码对我来说似乎是正确的。
  • Duration 在 $duration 行是 8。而且我很确定我正在发送正确的值作为 RecordingDuration 参数,因为我还尝试从与我的 Twilio 帐户关联的录音列表中提取录音,并使用 recordingSID 作为获取正确录音的密钥,但是还会返回 8 的录制持续时间,同样与录制的实际长度无关。

标签: php mysqli twilio


【解决方案1】:

根据您粘贴的代码示例,您可能做错了几件事。如果我错了,请纠正我,但我相信您在使用 Twilio js 及其TwiML 提交资源后,正试图从 Twilio API 请求回Recording 资源?

如果是这样,twilio 实际上有一个很好的小demo 正是您的用例。

您不应该在 $_REQUEST['RecordingDuration'] 中看到任何内容,我不确定为什么您甚至会返回 8 的值。基本上,您要做的是使用 Twilio REST API 查找用户录音。

这里是一个例子 sn-p:

<?php
// Get the PHP helper library from twilio.com/docs/php/install
require_once('/path/to/twilio-php/Services/Twilio.php'); // Loads the library

// Your Account Sid and Auth Token from twilio.com/user/account
$sid = "ACda6f132a3c49700934481addd5ce1659"; 
$token = "{{ auth_token }}"; 
$client = new Services_Twilio($sid, $token);

// Loop over the list of recordings and echo a property for each one
foreach ($client->account->recordings as $recording) {
    echo $recording->duration;
}

API 调用的响应将返回一个录制资源。

这里有更多来自他们的docs的例子

【讨论】:

  • 您的第一个陈述是正确的,我正在尝试获取有关我刚刚使用 Twilio js 及其 TwiML 提交的录音的信息。但是,我也尝试了类似于您提供的示例 sn-p 的方法,它继续返回相同的值。我将编辑我的原始问题以包括尝试以及澄清。
  • hmm,假设您正确使用 twilio php 客户端,并成功接收 Recording 资源作为响应对象。我唯一能想到的另一件事是,1)你确定你没有设置 8 秒的最大录制持续时间吗? 2) 测试录音是否无声?如果是这样,Twilio 会从您的音频文件中删除静音,请参阅hints 部分
  • 我现在将最大录制时间设置为 1000 秒,但如果我没记错的话,它可以持续更长的时间。我一直在做很短的录音,大部分时间只有 1-2 秒,但偶尔会做更长的录音。我现在确实有大约 5 秒的静默时间,我现在必须等待才能考虑结束录音,所以也许这就是它的来源?
  • 我只是觉得奇怪的是,在最后仍然附加静音的录音的持续时间将是返回的,而不是在静音被修剪后的录音持续时间,因为它显示为您的录音在 Twilio 网站和实际录制文件中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-05
  • 1970-01-01
  • 1970-01-01
  • 2014-08-05
  • 2023-04-01
相关资源
最近更新 更多