Twilio 无法播放 .mp3 和 .wav 文件

时间:2021-05-27 15:58:52

标签: twilio twilio-click-to-call

不幸的是,当我使用 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;

你能帮忙吗

2 个答案:

答案 0 :(得分:0)

请使用下面的方法

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>

答案 1 :(得分:0)

这里是 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# 开发人员,所以我不能在这里给你一个很好的例子。但您可能希望依赖底层媒体库,例如 ffmpegSoX。可能有一些库可以将它们封装在 C# 中,并提供有关如何使用它们的教程,但我对此无能为力。

相关问题