-- API 地址 / API Endpoint local API_URL = "http://ffmpeg.liulikeji.cn/api/ffmpeg" -- 输入音频URL (可替换) / Input audio URL (replaceable) local INPUT_URL = "https://git.liulikeji.cn/xingluo/CCTweaked-Demo/raw/branch/main/Demo/FFmpegApi-Demo/demo.mp3" -- 主函数 / Main function local function convertAndPlay() -- ===== 1. 准备请求数据 / Prepare request data ===== local requestData = { input_url = INPUT_URL, args = { "-vn", "-ar", "48000", "-ac", "1" }, -- DFPWM转换参数 / DFPWM conversion args output_format = "dfpwm" } -- ===== 2. 发送HTTP请求 / Send HTTP request ===== local response, err = http.post( API_URL, textutils.serializeJSON(requestData), { ["Content-Type"] = "application/json" } ) -- ===== 3. 错误处理 / Error handling ===== -- 网络错误 / Network error if not response then printError("HTTP request failed: " .. (err or "unknown error")) return end -- 读取响应 / Read response local responseBody = response.readAll() response.close() -- HTTP状态码检查 / HTTP status check local statusCode = response.getResponseCode() if statusCode ~= 200 then printError("API error (status "..statusCode..")") return end -- ===== 4. 解析JSON / Parse JSON ===== local responseData = textutils.unserializeJSON(responseBody) if not responseData then printError("Invalid API response (bad JSON)") return end -- API业务错误 / API logic error if responseData.status ~= "success" then printError("Conversion failed: "..(responseData.error or "no error info")) return end -- ===== 5. 播放音频 / Play audio ===== print("Conversion successful! Download URL:") print(responseData.download_url) print("Playing...") shell.run("speaker play "..responseData.download_url) end -- 执行 / Execute convertAndPlay()