ブラウザ側でサウンドスニペットをhttps://code.google.com/p/wami-recorder/で録音しようとしていますが、wamiの例とサーバー側のコントローラメソッド。私はこの問題を解決するにはどうすればよい再生!フレームワーク[1.2.4] - wami-recorderを使用してaudio/xwav Content-Typeを受け入れる
public static void addNewRecording() {
if (request.method.equals(Constants.METH_POST)) {
try {
InputStream inputStream = request.body;
Map<String, Header> headerMap = request.headers;
for (Entry<String, Header> entry : headerMap.entrySet()) {
Logger.info("Head: " + entry.getKey() + " name; "
+ entry.getValue().name + " val: " + entry.getValue().value());
}
OutputStream out = new FileOutputStream(new File(
"/Users/franklovecchio/Desktop/file.mp3"));
int read = 0;
byte[] bytes = new byte[1024];
/* ERROR ON LINE BELOW */
while ((read = inputStream.read(bytes)) != -1) {
out.write(bytes, 0, read);
}
inputStream.close();
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
for (Entry<String, String> params : request.params.allSimple().entrySet()) {
Logger.info("k: " + params.getKey() + "v: " + params.getValue());
}
renderCustomMessage("Created new recording.", "Success.");
}
}
ルートPOST /upload
ため
java.io.IOException: Bad file descriptor
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:198)
at controllers.APIVoicemailController.addNewRecording(APIVoicemailController.java:56)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:548)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:502)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:478)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:473)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:161)
at play.server.PlayHandler$NettyInvocation.execute(PlayHandler.java:256)
at play.Invoker$Invocation.run(Invoker.java:276)
at play.server.PlayHandler$NettyInvocation.run(PlayHandler.java:234)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
コントローラ方法:何らかの理由で、request.body
InputStream
はこのエラーを投げていますか?