ietzie
Legacy Member
Yo!
Ik heb een probleem met het converteren van een byte[] naar een 3gp of WAVE file.
Om even de situatie te schetsen :
ik ben aan een Android project bezig waarbij het mogelijk is audio te recorden en deze te syncen met een Oracle database. De audio wordt opgeslagen als BLOB.
Deze BLOB data word dan via hibernate uit de database gehaald en moet geconverteerd worden zodat de users op de website dit kunnen afspelen. Het ophalen van de data is geen probleem,alleen het converteren loopt mis.
Hierbij is m mijn byte[] die ik uit de database haal. De fout gebeurd op de lijn
De stacktrace is
Wat ik al geprobeerd heb :
- Naar een gewone file converteren,lukt maar kan je niet afspelen
- De data in de database nakijken zodat deze niet leeg is,ook in het programma (dus heel de array laten uitprinten ect)
Kan het probleem ook liggen aan Android die de audio in 3gp opslaat en ik deze daarna naar WAVE wil converteren?
Tot zover mijn wall of text,hopelijk kan iemand mij helpen
Ik heb een probleem met het converteren van een byte[] naar een 3gp of WAVE file.
Om even de situatie te schetsen :
ik ben aan een Android project bezig waarbij het mogelijk is audio te recorden en deze te syncen met een Oracle database. De audio wordt opgeslagen als BLOB.
Deze BLOB data word dan via hibernate uit de database gehaald en moet geconverteerd worden zodat de users op de website dit kunnen afspelen. Het ophalen van de data is geen probleem,alleen het converteren loopt mis.
Code:
File NewfilePath = new File("C:\\test2.wav");
try {
ByteArrayInputStream oInstream = new ByteArrayInputStream(m);
AudioInputStream oAIS = AudioSystem.getAudioInputStream(oInstream);
AudioSystem.write(oAIS, AudioFileFormat.Type.WAVE, NewfilePath);
} catch (UnsupportedAudioFileException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Hierbij is m mijn byte[] die ik uit de database haal. De fout gebeurd op de lijn
Code:
AudioInputStream oAIS = AudioSystem.getAudioInputStream(oInstream);
De stacktrace is
Code:
javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input stream
at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1102)
at com.realdolmen.view.Login.<init>(Login.java:71)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:192)
at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:57)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.newPage(BookmarkablePageRequestTarget.java:298)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.getPage(BookmarkablePageRequestTarget.java:320)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.respond(BookmarkablePageRequestTarget.java:261)
at org.apache.wicket.request.AbstractRequestCycleProcessor.respond(AbstractRequestCycleProcessor.java:105)
at org.apache.wicket.RequestCycle.respond(RequestCycle.java:1267)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1334)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:479)
at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:312)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:440)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:926)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Wat ik al geprobeerd heb :
- Naar een gewone file converteren,lukt maar kan je niet afspelen
- De data in de database nakijken zodat deze niet leeg is,ook in het programma (dus heel de array laten uitprinten ect)
Kan het probleem ook liggen aan Android die de audio in 3gp opslaat en ik deze daarna naar WAVE wil converteren?
Tot zover mijn wall of text,hopelijk kan iemand mij helpen

