我需要从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)
有什么想法吗?
答案 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")