Archief - JAVA audio conversie

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

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.

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 ;)

ietzie

Legacy Member
Ok het probleem is dus opgelost,zoals altijd komt de oplossing nadat de vraag gesteld is:p

Het zat fout bij het syncen blijkbaar,de data in de database was niet 100% juist.


Hier mag dus een slotje op

Jerre Muesli

Legacy Member
Volgens mij zit uw fout bij het syncen. Ik denk dat uw data niet 100% juist is.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan