基于socket的android手机视频实时传输

基于socket的android手机视频实时传输

ID:16900173

大小:395.12 KB

页数:21页

时间:2018-08-25

基于socket的android手机视频实时传输_第1页
基于socket的android手机视频实时传输_第2页
基于socket的android手机视频实时传输_第3页
基于socket的android手机视频实时传输_第4页
基于socket的android手机视频实时传输_第5页
资源描述:

《基于socket的android手机视频实时传输》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于Socket的Android手机视频实时传输肖泽云首先,简单介绍一下原理。主要是在手机客户端(Android)通过实现Camera.PreviewCallback接口,在其onPreviewFrame重载函数里面获取摄像头当前图像数据,然后通过Socket将图像数据和相关的用户名、命令等数据传输到服务器程序中。服务器端(PC端)采用C#编写,通过监听相应的端口,在获取数据后进行相应的命令解析和图像数据还原,然后将图像数据传递至PictureBox控件中用于显示,这样就实现了手机摄像头的视频数据实时传输到服务器上。如果需

2、要将这些视频进行转发,通过服务器再将这些数据复制转发即可。效果如下:对于Android客户端上主要有几个地方需要注意,第一个就是Socket通信。Socket通信可以通过Socket类来实现,直接结合PrintWriter来写入命令,如下定义的一个专门用于发送命令的线程类,当要连接到服务器和与服务器断开时,都需要发送命令通知服务器,此外在进行其他文字传输时也可以采用该方法,具体代码如下:/**发送命令线程*/classMySendCommondThreadextendsThread{privateStringcommond

3、;publicMySendCommondThread(Stringcommond){this.commond=commond;}publicvoidrun(){//实例化Sockettry{Socketsocket=newSocket(serverUrl,serverPort);PrintWriterout=newPrintWriter(socket.getOutputStream());otherstaffoftheCentre.Duringthewar,ZhuwastransferredbacktoJiangxi,an

4、dDirectorofthenewOfficeinJingdezhen,JiangxiCommitteeSecretary.Startingin1939servedasrecorderoftheWestNorthOrganization,SecretaryoftheSpecialCommitteeAfterthevictoryofthelongMarch,hehasbeentheNorthwestOfficeoftheFederationofStateenterprisesMinister,ShenmufuguSARmis

5、sions,DirectorofNingxiaCountypartyCommitteeSecretaryandrecorderoftheCountypartyCommitteeSecretary,Ministersandout.println(commond);out.flush();}catch(UnknownHostExceptione){}catch(IOExceptione){}}}如果是采用Socket发送文件,则可以通过OutputStream将ByteArrayInputStream数据流读入,而文件数据流则

6、转换为ByteArrayOutputStream。如果需要在前面添加文字,同样也需要转换为byte,然后写入OutputStream。同样也可以通过定义一个线程类发送文件,如下:/**发送文件线程*/classMySendFileThreadextendsThread{privateStringusername;privateStringipname;privateintport;privatebytebyteBuffer[]=newbyte[1024];privateOutputStreamoutsocket;priva

7、teByteArrayOutputStreammyoutputstream;publicMySendFileThread(ByteArrayOutputStreammyoutputstream,Stringusername,Stringipname,intport){this.myoutputstream=myoutputstream;this.username=username;this.ipname=ipname;this.port=port;try{myoutputstream.close();}catch(IOEx

8、ceptione){e.printStackTrace();}}publicvoidrun(){try{//将图像数据通过Socket发送出去SockettempSocket=newSocket(ipname,port);outsocket=tempSocket.getOutputStream();//

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。