java - Regarding video and audio stream over socket.io from android camera live -
i want stream real time video android camera device via socket.io, not able send audio
as using surfaceview create camra view
on camera preview getting video bytes
but bytes not contain audio, contain video frame
help me how can merge video , audio @ same time byte array , send other device, while recording , on other side how can decode
code using
mcamera.setpreviewcallbackwithbuffer(new camera.previewcallback() { private long timestamp = 0; public synchronized void onpreviewframe(byte[] data, camera camera) { int size = data.length; camera.size previewsize = camera.getparameters().getpreviewsize(); yuvimage yuvimage = new yuvimage(data, imageformat.nv21, previewsize.width, previewsize.height, null); bytearrayoutputstream baos = new bytearrayoutputstream(); yuvimage.compresstojpeg(new rect(0, 0, previewsize.width, previewsize.height), 80, baos); // yuvimage.compresstojpeg(new rect(0, 0, 128, 96), 80, baos); byte[] jdata = baos.tobytearray(); // int sizeofdata = jdata.length; datagramsocket s; try { s = new datagramsocket(); s.setbroadcast(true); s.setsotimeout(timeout_ms); inetaddress local = inetaddress.getbyname(ipadresse.gettext().tostring()); datagrampacket p = new datagrampacket(jdata, jdata.length, local, server_port); s.send(p); } catch (socketexception e) { e.printstacktrace(); } catch (unknownhostexception e) { e.printstacktrace(); } catch (ioexception e) { e.printstacktrace(); } // // convert bitmap bitmap bmp = bitmapfactory.decodebytearray(jdata, 0, jdata.length); m_videcapturebitmap.setimagebitmap(bmp); log.v("cameratest", "frame size = " + data.length); timestamp = system.currenttimemillis(); try { camera.addcallbackbuffer(data); } catch (exception e) { log.e("cameratest", "addcallbackbuffer error"); return; } return; } }); try { mcamera.startpreview(); } catch (throwable e) { mcamera.release(); mcamera = null; e.printstacktrace(); return; }
you need desing/use protocol share 1 connection sending video&audio data, or can use connection (eg designated server port) audio only, you'll have 1 connection audio , video.
as how grab audio android mic byte array there's answer here: android record mic bytearray without saving audio file
Comments
Post a Comment