前言
上一篇文章中我们使用了浏览器的HTTP SERVER PUSH功能,效果还行吧,不过用户体验上要差一些,因此我在这篇文章中将介绍直接通过Socket发送图片数据,然后客户端解析数据后直接展示的功能。
效果
Screenshot_-05-17-22-52-26_com.shutup.socketc.png
Demo地址
原理
其实我们上一篇文章中也是通过Socket进行数据的传输的,只是数据的解析是由浏览器完成的,我们这次改为我们自己进行解析和展示。一些技术的点还是一样的。
主要技术点:
获取原始摄像头数据
编码成合适的格式
socket发送出去
说明
我们这里的发送和接收仍然是在单独的线程中实现,通过handler和主线程进行交互。
服务端的发送逻辑:先发送数据的长度,占4个字节,接着发送数据的字节数组。
class ServerWriter extends Thread {
@Override
public void run() {
super.run();
try {
//listen on 8888
mServerSocket = new ServerSocket(8888);
mSocket = mServerSocket.accept();
mOutputStream