You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Twilio <Play>播放本地临时音频文件?

解决方案:用Data URI直接播放生成的音频

Twilio的<Play>动词不支持本地文件路径——Twilio的服务器无法访问你Twilio Functions里的/tmp目录,直接传本地路径肯定行不通。而且你完全不用额外上传到云端,用Data URI就能零成本解决问题。

具体修改步骤:

  1. 跳过写入本地文件的操作,直接将音频buffer转换成Base64格式
  2. 构造对应音频格式的Data URI,传给twiml.play()即可

修改后的代码:

// 直接处理生成的buffer,无需写入文件
const audioBase64 = buffer.toString('base64');
// 构造data URI,注意匹配音频格式(mp3对应audio/mpeg)
const dataUri = `data:audio/mpeg;base64,${audioBase64}`;

console.timeEnd("main");
twiml.play(dataUri);
return callback(null, twiml);

补充说明:

  • 你原代码里await和fs.writeFile回调混用是无效的,fs.writeFile的回调版本不返回Promise,await起不到等待作用,上面的写法还能避免这个问题
  • Data URI的格式要对应你的音频类型:如果是wav文件就用audio/wav,mp3用audio/mpeg,格式不匹配会导致无法播放

内容的提问来源于stack exchange,提问作者Ruchir Baronia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 14:45:02