基于局域网的视频聊天系统--蛙酷

  作者:邱超 丁建辉 阳平 时间:2014-12-29来源:电子产品世界

编者按:  摘要:随着无线网络的发展,支持Wi-Fi的电子产品越来越多,与Wi-Fi绑定的应用也层出不穷,但还没有一款基于Wi-Fi的视频聊天软件能够满足人们的日常交互需求,因此我们开发出“蛙酷”,一款基于局域网的视频聊天软件,能够在局域网覆盖下实现随时随地视频聊天和视频会议,且无需耗费任何手机数据流量,真正给用户带来了随聊随见的交互体验。   1 引言   目前,社会所流行的聊天软件所专注的问题仅限于视频效果和软件盈利上,应用目的趋于商业化,而没有真正从用户的角度出发去设计开发软件,

  3.2.4 配置IP地址

  当wpa_supplicant成功连接上AP之后,它向控制通道发送事件通知连接上AP了, wifi_wait_for_event函数接收到该事件, WifiMonitor中的MonitorThread被执行来处理这个事件,WifiMonitor再调用WifiStateTracker的notifyStateChange,WifiStateTracker接着往自身发送EVENT_DHCP_START消息启动DHCP去获取IP地址,然后再广播发送NETWORK_STATE_CHANGED_ACTION这个Intent。

  WifiLayer注册了接收NETWORK_STATE_CHANGED_ACTION这个Intent,所以它的相关处理函数handleNetworkStateChanged会被调用,当 DHCP拿到IP地址之后,会再发送EVENT_DHCP_SUCCEEDED消息,WifiLayer处理EVENT_DHCP_SUCCEEDED消息, 会再次广播发送NETWORK_STATE_CHANGED_ACTION这个Intent,这次带上完整的IP地址信息。至此为止,整个连接过程完成。

  3.3 相机

  Android的Camera包含取景器(viewfinder)和拍摄照片的功能。目前Android发布版的Camera程序功能比较简单,其程序的架构分成客户端(Client)和服务器(Server)两个部分,它们建立在Android的进程间通讯Binder的结构上。

  以开源的Android为例,Camera的代码主要在以下的目录中:

  Camera的JAVA程序的路径:

  packages/apps/Camera/src/com/android/camera/

  其中Camera.java是主要实现的文件

  frameworks/base/core/java/android/hardware/Camera.java

  这个类是和JNI中定义的类是一个,有些方法通过JNI的方式调用本地代码得到,有些方法自己实现。

  Camera的JAVA本地调用部分(JNI):

  frameworks/base/core/jni/android_hardware_Camera.cpp

  这部分内容编译成为目标是libandroid_runtime.so。

  主要的头文件在以下的目录中:

  frameworks/base/include/ui/

  Camera底层库在以下的目录中:

  frameworks/base/libs/ui/

  这部分的内容被编译成库libui.so。

  Camera服务部分:

  frameworks/base/camera/libcameraservice/

  这部分内容被编译成库libcameraservice.so。

  为了实现一个具体功能的Camera,在最底层还需要一个硬件相关的Camer库(例如通过调用video for linux驱动程序和Jpeg编码程序实现),而这个库最终将会被Camera的服务库libcameraservice.so调用。

  4 实验结果与比较

  这款视频聊天软件——“蛙酷”能够稳定地完成各项功能,可以完美地实现视频聊天和视频会议等功能,经过反复测试以及调试后,程序中的BUG也已基本得到有效解决。一开始在与其他视频聊天平台的对比测试中,我们发现“蛙酷”视频传输存在延迟,延迟时间大约为0.8至1.0秒,视频画面呈现出较多的噪点,在较差的网络环境下也频繁出现视频画面卡顿的现象。对于这一系列问题,在查阅相关资料后,我们发现主要问题在于我们没有选择最佳的视频解码,还有一个问题是我们没有对网络传输进行优化。在进行了一系列优化后,视频效果已经显著改善,达到视频聊天标准。

  参考文献:
  [1] Android实时视频采集——camera预览采集[EB/OL].http://www.cnblogs.com/skyseraph/archive/2012/03/26/2418665.html
  [2] Android之SurfaceView实现视频播放[EB/OL].http://www.cnblogs.com/devinzhang/archive/2012/02/03/2337576.html
  [3]秦延东.基于UDP的可靠性数据传递算法研究与实现,信息科学与技术学院[EB/OL].http://www.doc88.com/p-6611634997913.html
  [4] Android开发之socket编程UDP和TCP通信实现[EB/OL].http://wenku.baidu.com/link?url=W5m0SW-NBCgNlgjfIR0Gorh-zv7qfqJ6WaaVEehMQJCqNSs6DX0VuYMOup9IPHo4O39sGBUwSoGQ11OOVng9uuu96-o_L2lUgSAY-IsLD3W
  [5] Android Wi-Fi获取组播[EB/OL].http://www.apkbus.com/android-16351-1-1.html
  [6] IP组播技术及其应用[EB/OL].http://wenku.baidu.com/link?url=Q4egZm_VLHn28au6JlEM6R-nki8AndPchGqKwGMRFsmfUT34E3bAtkzd_PQzo90otP3yh-5dfNMatoB_d8vnX-FVZUS7uESaIaEINr4nf9K
  [7] Android Wi-Fi 工作原理[EB/OL].http://blog.csdn.net/sunxingzhesunjinbiao/article/details/22822083

1 2 3

关键词: 局域网 蛙酷 视频聊天 Wi-Fi JNI Android 201501

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版