使用servlet接收音频文件

简要说明:我有一个Servlet,它接收一个我无法读取的请求(getContentType()= audio / x-wav)。 我需要读取此wave并将其保存在服务器端。

详细故事:我对Flex,javascript,PHP和Python一无所知,我想(从客户端“浏览器”)记录一个wave文件并将其发送到服务器以保存它(用于进一步的ASR处理)。

经过一番搜索后,我发现了一个名为Wami-Recorder的库(使用flex和java scrip),我已经使用过了,但是它没有给我任何java服务器端的例子,它也没有文档所以我决定弄脏我的手让它工作。 它包含一个服务器端python和PHP示例(我将列出PHP一个):

 

最后要注意的是,我确信如果我创建了一个套接字服务器并将请求定向到它,我将能够轻松获取媒体,但我希望所有内容都由Servlet处理。

基本上,Java servlet等效于PHP的以下行,这是代码中的关键行,

 $content = file_get_contents('php://input'); 

 InputStream input = request.getInputStream(); 

这基本上返回唯一的HTTP请求主体。 您可以使用通常的Java方式将其写入任意OutputStream 。 例如,一个new FileOutputStream("/some.wav")

您应该只知道HTTP请求主体只能读取一次,并且当您调用任何request.getParameterXxx()方法时,它也会被隐式解析。 因此,如果您对请求URI查询字符串中的参数感兴趣,那么您应该使用

 String queryString = request.getQueryString(); 

并自己进一步解析(即拆分为& ,然后拆分= ,然后URLDecode名称和值)。