Commit 9714f6ae authored by sheteng's avatar sheteng

语音房间

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