1 参考代码链接
https://github.com/pchab/ProjectRTC
https://github.com/pchab/AndroidRTC
2 本篇源码地址
https://github.com/daily11/WebRTC-For-Android
3 修改源码地方
只修改一个文件,既socketHandler.js文件,注释掉代码:client.emit('id', client.id); 添加属性var mSockets = []; var ids = []; 并添加代码:
mSockets.push(client);
for (var i in mSockets) {
ids[i] = mSockets[i].id;
}
client.emit('id', ids);
默认传回的是client.id,这里我传回了对应的id集合。
3.2.1 WebRtcClient.java类修改
private Emitter.Listener onId = new Emitter.Listener() {
@Override
public void call(Object[] args) {
JSONArray ids = (JSONArray) args[0];
String[] arr = new String[ids.length()];
for (int i = 0; i < ids.length(); i++) {
try {
arr[i] = (String) ids.get(i);
} catch (Exception e) {
e.printStackTrace();
}
}
mListener.onCallReady(arr[0], arr);
}
};
回调函数call内部修改为以上代码
3.2.2 RtcActivity.java类修改
@Override
public void onCallReady(final String callId, final String[] args) {
final int len = args.length;
if (len == 1) {
call(callId);
} else {
callerId = args[0];
try {
answer(callerId);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
回调函数onCallReady内部修改如上
4 测试步骤
(1)进入项目根目录
(2)npm install
(3)node app.js
(1)保持电脑、2部手机都连在同一个局域网内;
(2)修改values文件夹下的strings.xml文件,将<string name="host">172.20.95.1</string>值修改为局域网中你主机的IP地址;
(3)在2台手机上分别运行该应用即可
|