wami-recorder和Sinatra

时间:2013-05-06 16:21:48

标签: ruby sinatra

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

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

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

这是我的控制者:

post "/upload" do 
    p params
end

输出只是:

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

1 个答案:

答案 0 :(得分: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文件