微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?