Commit 9714f6ae authored by sheteng's avatar sheteng

语音房间

parent 7c1a4482
......@@ -69,7 +69,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:hint="ip"
android:text="10.17.4.207"
android:text="106.15.237.67"
android:imeActionLabel="@string/action_sign_in_short"
android:imeOptions="actionDone"
android:selectAllOnFocus="true"
......
......@@ -406,7 +406,7 @@ public class CCIMClient {
*/
public boolean checkMutedExpired() {
long currentTimeMillis = System.currentTimeMillis();
if (currentTimeMillis < mutedExpiredAt) {
if (mutedExpiredAt == -1L || currentTimeMillis < mutedExpiredAt) {
return false;
}
return true;
......@@ -715,8 +715,6 @@ public class CCIMClient {
conf.plugin(JanusPlugins.VIDEOROOM);
if (janusService != null) {
janusService.stop();
// callback.onJoinFailed(ErrorCode.JOIN_AUDIO_FAILED_JOINED);
// return;
}
janusService = new JanusService(context, roomId, user, callback);
janusService.start(context, conf);
......
......@@ -48,20 +48,16 @@ public class JanusService extends JanusDelegate {
private Boolean isJoin = false;
private AudioRoomListener callback;
// private AudioManager audioManager;
// private AudioManager audioManager;
private AudioTrack audioTrack;
private AppRTCAudioManager audioManager;
public JanusService(Context context, Integer roomId, User user, AudioRoomListener callback) {
audioManager = AppRTCAudioManager.create(context);
// audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
this.user = user;
this.roomId = roomId;
this.callback = callback;
audioManager.start((selectedAudioDevice, availableAudioDevices) -> {
});
}
......@@ -104,7 +100,12 @@ public class JanusService extends JanusDelegate {
public void onClose() {
logger.info("close");
if (audioManager != null) {
audioManager.stop();
CCIMClient.getInstance().handler.post(new Runnable() {
@Override
public void run() {
audioManager.stop();
}
});
}
}
......@@ -121,6 +122,14 @@ public class JanusService extends JanusDelegate {
payload.setInt("room", roomId);
payload.setString("display", new Gson().toJson(user));
this._janus.dispatch(JanusCommands.JOIN, payload);
CCIMClient.getInstance().handler.post(new Runnable() {
@Override
public void run() {
audioManager.start((selectedAudioDevice, availableAudioDevices) -> {
});
}
});
}
@Override
......@@ -131,9 +140,9 @@ public class JanusService extends JanusDelegate {
@Override
public void onMediaChanged(MediaBundle media) {
if ( media.localAudioTrack() != null) {
if (media.localAudioTrack() != null) {
audioTrack = media.localAudioTrack();
if (!CCIMClient.getInstance().checkMutedExpired()){
if (!CCIMClient.getInstance().checkMutedExpired()) {
audioTrack.setEnabled(false);
}
}
......
......@@ -3,14 +3,16 @@ package com.ccwangluo.ccim.manage;
import android.os.Handler;
import android.os.Looper;
import com.ccwangluo.ccim.CCIMClient;
import com.ccwangluo.ccim.listener.ResultEventCallback;
import com.ccwangluo.ccim.util.ErrorCode;
import java.util.HashMap;
import java.util.logging.Logger;
public class CallBackManager<T> {
private final HashMap<Integer, ResultEventCallback<T>> callbackHashMap = new HashMap<>();
private final Logger logger = Logger.getLogger(CCIMClient.class.getName());
private static final int time_out = 20 * 1000;
......@@ -19,11 +21,12 @@ public class CallBackManager<T> {
//设置60秒超时
new Handler(Looper.getMainLooper()).postDelayed(() -> {
ResultEventCallback<T> callBack = getCallBack(id);
if (callBack != null && id != 0){
if (callBack != null && id != 0) {
removeCallBack(id);
callBack.onFailed(ErrorCode.NET_TIME_OUT);
logger.info("send time out,seq id is " + id);
}
},time_out);
}, time_out);
}
public ResultEventCallback<T> getCallBack(int id) {
......
......@@ -145,24 +145,22 @@ public class NettyChatClient implements SocketClient {
@Override
public void heartBeat(Long frequency, Chat.ChatRequestMessage build) {
if (timer != null){
if (timer != null) {
timer.cancel();
timer = null;
}
timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
if (getConnectivityStatus(context)) {
if (channelFuture != null && channelFuture.channel().isActive()) {
logger.info("check connect is active");
channelFuture.channel().writeAndFlush(build);
} else {
try {
logger.info("reconnect");
connectSync();
} catch (Exception e) {
e.printStackTrace();
}
if (channelFuture != null && channelFuture.channel().isActive()) {
logger.info("check connect is active");
channelFuture.channel().writeAndFlush(build);
} else {
try {
logger.info("reconnect");
connectSync();
} catch (Exception e) {
e.printStackTrace();
}
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment