从Lua中的URL加载音频文件

时间:2013-08-10 11:44:23

标签: lua mp3

我需要从Lua中的URL加载一个mp3文件。

我试过这个,但它不起作用。

require "socket.http"

local resp, stat, hdr = socket.http.request{
  url     = "https://www.dropbox.com/s/hfrdbncfgbsarou/hello.mp3?dl=1",
}

local audioFile = audio.loadSound(resp)
audio.play(audioFile)

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

request函数被“重载”(在其他语言的术语中)。正如documentation中所详述的,它有三个签名:

local responsebodystring, statusnumber, headertable, statusstring 
  = request( urlstring ) -- GET

local responsebodystring, statusnumber, headertable, statusstring 
  = request( urlstring, requestbodystring ) -- POST

local success, statusnumber, headertable, statusstring 
  = request( requestparametertable ) -- depends on parameters

有关详细信息,请参阅文档,尤其是有关错误结果的信息。

对于最后一种形式,Lua语法允许使用表构造函数而不是括号中的单个表参数来调用函数。这就是您使用的形式和语法。但是,您错误地认为第一个返回值是响应主体。响应主体被传递给“接收器”功能,该功能可选地在请求参数表中指示,您没有。

尝试第一种形式:

local resp, stat, hdr 
  = socket.http.request("https://www.dropbox.com/s/hfrdbncfgbsarou/hello.mp3?dl=1")