在 Twilio 中,您可以 <Play> 从为来电提供的 URL 列表中选择一个随机音频文件吗?

In Twilio, can you <Play> a random audio file from a list of provided URLs for incoming calls?

使用 Twilio 进行互动艺术展览,您可以拨打电话并在画廊中收听音频。我希望来电者不要总是在音频文件开头听到相同的 20-30 秒音频。是否可以提供 3-4 个不同的音频文件,并且随机选择其中一个来播放来电。或者甚至随机化单个音频文件的开始时间也可以。

我搜索了所有人,但运气不佳。

我用于基本功能的代码如下。

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Play> https://dl.dropboxusercontent.com/s/qt0l2zjrlssj3nv/CMCA-PHONE-01.mp3 </Play>
</Response>

这里是 Twilio 布道者。

没有内置方法可以执行此操作,但您绝对可以动态随机生成 TwiML select URL 以包含在 <Play> 动词中。

如果您对必须自己托管所有内容不感兴趣,Twilio Functions 为您提供了一种编写可以生成它的 Node 的方法。

例如,您可以创建一个包含 n 个 URL 的数组,然后使用 Math.random 在该数组中随机选择一个项目:

exports.handler = function(context, event, callback) {
  var items = [
    'http://www.example.com/1.mp3',
    'http://www.example.com/2.mp3',
    'http://www.example.com/3.mp3',
    'http://www.example.com/4.mp3'];

  var item = items[Math.floor(Math.random()*items.length)];

  var twiml = new Twilio.twiml.VoiceResponse()
  twiml.play(item);
  console.log(twiml.toString())
  callback(null, twiml);
};

希望对您有所帮助。