如何解决Twilio 无法播放 .mp3 和 .wav 文件
不幸的是,当我使用 Twilio 语音消息时,它不会播放消息,而是播放一些噪音。我也使用了 Twilio 支持的 mime 类型。
var response = new VoiceResponse();
var call = Twilio.Rest.Api.V2010.Account.CallResource.Read(parentCallSid: callSid).ToList();
if (call[0].Status.ToString() == "in-progress")
{
VoiceMail voiceMail = voiceMailService.GetVoiceMailByVoiceMailId(voiceMailId);
if (voiceMail != null && !string.IsNullOrEmpty(voiceMail.RecordUrl))
{
response.Play(url: new Uri(voiceMail.RecordUrl));
response.Hangup();
}
Twilio.Rest.Api.V2010.Account.CallResource.Update(new Twilio.Rest.Api.V2010.Account.UpdateCallOptions(call[0].Sid) { Twiml = response.ToString() });
status = true;
你能帮忙吗
解决方法
请使用下面的方法
PHP Laravel
use Twilio\TwiML\VoiceResponse;
$response = new VoiceResponse();
$response->play(http://www.yourwebsite.com/dir/welcome_mp3);
echo $response;
exit;
将在您的 webhooks 上返回此代码可以播放 mp3
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Play loop="10">https://api.twilio.com/cowbell.mp3</Play>
</Response>
,
这里是 Twilio 开发者布道者。
根据评论,我们确定您正在使用网络的 MediaRecorder API 创建音频文件并尝试通过 Twilio 播放这些文件。
MediaRecorder API 只能创建 webm 文件。使用不同的 MIME 类型/扩展名保存这些文件不会将它们转换为其他格式。
Twilio <Play>
元素只能播放以下格式的文件:mp3、wav、aiff、gsm 和 ulaw。
如果您想使用在浏览器中录制的音频,您需要将 webm 文件转换为其中一种格式。您可以在浏览器中使用 Cloudconvert 之类的网站执行此操作。不过,这不是很可扩展,因此您可能希望在自己的代码中自动执行此转换。
您可以使用第三方服务(例如 Cloudinary)来执行这些音频转换。为此有 example code in the Cloudinary docs。
或者,您可以在自己的服务器上转换这些文件。我不是 C# 开发人员,所以我不能在这里给你一个很好的例子。但您可能希望依赖底层媒体库,例如 ffmpeg 或 SoX。可能有一些库可以将它们封装在 C# 中,并提供有关如何使用它们的教程,但我对此无能为力。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。