android 语音实时对讲,实时对讲语音功能代码分析.doc
实时对讲:MainService.javapublic class MainService extends Service {private ServiceBinder sBinder = new ServiceBinder();//服务绑定器private AlertDialog dialog = null;private boolean isPaused = false;//判断本身是不是可见
实时对讲:
MainService.java
public class MainService extends Service {
private ServiceBinder sBinder = new ServiceBinder();//服务绑定器
private AlertDialog dialog = null;
private boolean isPaused = false;//判断本身是不是可见
private boolean isRemoteUserClosed = false; //是否远程用户已经关闭了通话。
private SharedPreferences pre = null;
private SharedPreferences.Editor editor = null;
private WifiManager wifiManager = null;
private ServiceBroadcastReceiver receiver = null;
public InetAddress localInetAddress = null;
private String localIp = null;
private byte[] localIpBytes = null;
private byte[] regBuffer = new byte[Constant.bufferSize];//本机网络注册交互指令
private byte[] msgSendBuffer = new byte[Constant.bufferSize];//信息发送交互
private byte[] fileSendBuffer = new byte[Constant.bufferSize];//文件发送交互指令
private byte[] talkCmdBuffer = new byte[Constant.bufferSize];//通话指令
private static Person me = null;//用来保存自身的相关信息
private CommunicationBridge comBridge = null;//通讯与协议解析模块
@Override
public void onStart(Intent intent, int startId) {
initCmdBuffer();//初始化指令缓存
wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
new CheckNetConnectivity().start();//侦测网络状态,获取IP地址
comBridge = new CommunicationBridge();//启动socket连接
comBridge.start();
pre = PreferenceManager.getDefaultSharedPreferences(this);
editor = pre.edit();
regBroadcastReceiver();//注册广播接收器
getMyInfomation();//获得自身信息
new UpdateMe().start();//向网络发送心跳包,并注册
new CheckUserOnline().start();//检查用户列表是否有超时用户
sendPersonHasChangedBroadcast();//通知有新用户加入或退出
System.out.println("Service started...");
}
//更新通话命令用户数据
System.arraycopy(ByteAndInt.int2ByteArray(myId), 0, talkCmdBuffer, 6, 4);
System.arraycopy(ByteAndInt.int2ByteArray(iconId), 0, talkCmdBuffer, 10, 4);
for(int i=14;i<44;i++)talkCmdBuffer[i] = 0;//把原来的昵称内容清空
System.arraycopy(nickeNameBytes, 0, talkCmdBuffer, 14, nickeNameBytes.length);
for(int i=0;i
System.arraycopy(Constant.pkgHead, 0,
更多推荐
所有评论(0)