2

我需要我的用户录制语音片段。我正在使用wami-recorder来处理客户端的录音。我正在使用默认的 javascript 函数:

Wami.startRecording('/upload?name=mysound.wav');
Wami.stopRecording();

在 chrome 控制台中,我可以看到 post 请求已成功发送,因为当我使用 wami-recorder 默认 url"https://wami-recorder.appspot.com/audio"时,它工作正常。但我似乎无法在后端接收文件,Sinatra。如何获取文件并存储它?有人可以指出我正确的方向吗?

这是我的控制器:

post "/upload" do 
    p params
end

输出只是:

{"name"=>"file.wav"}
4

1 回答 1

1

音频作为原始正文的一部分发布。我能够使用将文件保存在rails中
request.raw_post

在一些简短的谷歌搜索中,您似乎应该能够在 sinatra 中使用 request.env["rack.input"].read

然后,您可以将其直接保存到文件中

file = File.new("audio.wav", "w+b")
file.write request.env["rack.input"].read
file.close

这应该在同一目录中保存一个 wav 文件

于 2013-05-28T21:48:56.657 回答