Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Twilio调用的音频文件编码有问题_Php_Encoding_Twilio_Html5 Audio_Phone Call - Fatal编程技术网

Php Twilio调用的音频文件编码有问题

Php Twilio调用的音频文件编码有问题,php,encoding,twilio,html5-audio,phone-call,Php,Encoding,Twilio,Html5 Audio,Phone Call,我在浏览器中录制用于Twilio的音频文件时遇到问题。我基本上是从这个-> 为了录音机。我要做的是将音频文件保存到正在工作的Web服务器上,然后将其发送到Twilio以使用它进行调用。MDN中的示例代码创建了一个编码为OGG文件的blob,因此我将该行更改为: const blob = new Blob(chunks, { 'type' : 'audio/wav' }); 与此相反: const blob = new Blob(chunks, { 'type' : 'audio/ogg; co

我在浏览器中录制用于Twilio的音频文件时遇到问题。我基本上是从这个-> 为了录音机。我要做的是将音频文件保存到正在工作的Web服务器上,然后将其发送到Twilio以使用它进行调用。MDN中的示例代码创建了一个编码为OGG文件的blob,因此我将该行更改为:

const blob = new Blob(chunks, { 'type' : 'audio/wav' });
与此相反:

const blob = new Blob(chunks, { 'type' : 'audio/ogg; codecs=opus' });
下面是我使用PHP将音频文件发送到Twilio的代码:

$client->account->calls->create(
   $phoneNum,
   $twilio_number,
   [
      "twiml" => "<Response><Play>${audioClipPath}</Play></Response>"
      // audioClipPath is https://www.example.com/audio_files/filename.wav
   ]
);
$client->account->calls->create(
$phoneNum,
$twilio_编号,
[
“twiml”=>“${audioClipPath}”
//耳蜗https://www.example.com/audio_files/filename.wav
]
);
因此,一切似乎都很顺利,我已将文件正确保存到Web服务器,并具有对目录所需的访问权限,因此在Twilio中使用该剪辑不会出现问题。唯一的问题是,当我试图访问该文件时,Twilio总是给我一个错误。Twilio将拨打我的电话号码,但会说:
很抱歉,出现了应用程序错误
,Twilio调试器给了我
错误-11200 HTTP检索失败
。我确信这不是目录权限问题,因为当我将音乐剪辑上传到Web服务器时,它工作正常。所以我的想法是我把音频文件编码错了,而Twilio不喜欢它。有没有人对这个问题有过经验,或者对如何前进有过想法


哦,我忘了提到我也试过
audio/mp3
,还有
audio/wave
格式。

使用Audacity之类的工具,看看实际的编码是什么。问题出在编码上。录音的最佳实践-@Alan I将音频文件放入audacity,但它不是公认的格式。我目前正在使用MediaRecorder API进行录制,但在研究音频文件编码时,似乎存在一些特定于浏览器的限制。潜入更深的地方好像我被吸入了一个编码黑洞,我对这些话题都不熟悉。因此,您对如何在录制后将MediaRecorder的编码形式更改为正确的格式有何建议?Phil Nash写了一篇博客,您需要对其进行转码以使其有用-MediaRecorder API简介-:如果您下载了一段录音,您可能会发现您没有能够播放WebM文件的媒体播放器。WebM是一种音频和视频的开放源代码格式,但它主要来自浏览器的支持。如果你有VLC播放器,你可能会播放音频,否则你可能会想使用convertio之类的在线工具将其转换成MP3或WAV文件(或者如果你觉得大胆,可以在终端中使用ffmpeg)。@Alan谢谢你,这篇文章非常有帮助。我想我是一个贪吃的惩罚-所以它是!!