Commit 1d449577 authored by pangcong Git's avatar pangcong Git
Browse files

新增音频、视频按钮控制和点击事件监听

parent babe189f
...@@ -57,6 +57,9 @@ class PresenterManager { ...@@ -57,6 +57,9 @@ class PresenterManager {
this.mTalkPresenter = talkPresenter; this.mTalkPresenter = talkPresenter;
} }
public TalkPresenter<IJRTCCommonEngineCallback> getTalkPresenter() {
return this.mTalkPresenter;
}
public void setCallPresenter(CallPresenter callPresenter) { public void setCallPresenter(CallPresenter callPresenter) {
this.mCallPresenter = callPresenter; this.mCallPresenter = callPresenter;
} }
......
...@@ -50,6 +50,7 @@ import com.juphoon.rtc.kit.JRTCCommonEngine; ...@@ -50,6 +50,7 @@ import com.juphoon.rtc.kit.JRTCCommonEngine;
import com.juphoon.rtc.kit.JRTCGlobalDefine; import com.juphoon.rtc.kit.JRTCGlobalDefine;
import com.juphoon.rtc.kit.chatwindow.JRTCChatDetailLayout; import com.juphoon.rtc.kit.chatwindow.JRTCChatDetailLayout;
import com.juphoon.rtc.kit.view.IJRTCView; import com.juphoon.rtc.kit.view.IJRTCView;
import com.juphoon.rtc.kit.view.function.JRTCOnClickStateListener;
import com.juphoon.rtc.kit.view.function.doodle.JRTCDoodleLayout; import com.juphoon.rtc.kit.view.function.doodle.JRTCDoodleLayout;
import com.juphoon.rtc.kit.view.function.doodle.JRTCScrawlView; import com.juphoon.rtc.kit.view.function.doodle.JRTCScrawlView;
import com.juphoon.rtc.kit.view.function.tap.JRTCCameraView; import com.juphoon.rtc.kit.view.function.tap.JRTCCameraView;
...@@ -1495,4 +1496,38 @@ class TalkPresenter<F extends IJRTCCommonEngineCallback> implements Contract.Tal ...@@ -1495,4 +1496,38 @@ class TalkPresenter<F extends IJRTCCommonEngineCallback> implements Contract.Tal
}); });
} }
/**
* 修改当前按钮为开启状态
*/
public void openButton(JCCTalkingConfig.JCCToolBarButtons jCCFlipButton){
if (jCCFlipButton == JCCTalkingConfig.JCCToolBarButtons.JCCMicButton){// 麦克风按钮
mMicView.open();
}else if (jCCFlipButton == JCCTalkingConfig.JCCToolBarButtons.JCCCameraButton){ // 摄像头按钮
mCameraView.open();
}
}
/**
* 修改当前按钮为关闭状态
*/
public void closeButton(JCCTalkingConfig.JCCToolBarButtons jCCFlipButton){
if (jCCFlipButton == JCCTalkingConfig.JCCToolBarButtons.JCCMicButton){// 麦克风按钮
mMicView.close();
}else if (jCCFlipButton == JCCTalkingConfig.JCCToolBarButtons.JCCCameraButton){ // 摄像头按钮
mCameraView.close();
}
}
/**
* 设置当前点击状态监听
* @param onClickStateListener
*/
public void setJRTCOnClickStateListener(JCCTalkingConfig.JCCToolBarButtons jCCFlipButton,JRTCOnClickStateListener onClickStateListener){
if (jCCFlipButton == JCCTalkingConfig.JCCToolBarButtons.JCCMicButton){// 麦克风按钮
mMicView.setOnClickListener(onClickStateListener);
}else if (jCCFlipButton == JCCTalkingConfig.JCCToolBarButtons.JCCCameraButton){ // 摄像头按钮
mCameraView.setOnClickListener(onClickStateListener);
}
}
} }
...@@ -2,6 +2,7 @@ package com.juphoon.cc.plugin; ...@@ -2,6 +2,7 @@ package com.juphoon.cc.plugin;
import com.juphoon.rtc.kit.IJRTCGuestCallback; import com.juphoon.rtc.kit.IJRTCGuestCallback;
import com.juphoon.rtc.kit.JRTCGuestEngine; import com.juphoon.rtc.kit.JRTCGuestEngine;
import com.juphoon.rtc.kit.view.function.JRTCOnClickStateListener;
import java.util.List; import java.util.List;
...@@ -86,6 +87,25 @@ public abstract class JCCGuestManager extends JCCCommonManagerImpl<IJRTCGuestCal ...@@ -86,6 +87,25 @@ public abstract class JCCGuestManager extends JCCCommonManagerImpl<IJRTCGuestCal
*/ */
public abstract void setCallParam(JCCGuestCallParam callParam); public abstract void setCallParam(JCCGuestCallParam callParam);
/**
* 修改当前按钮为开启状态
* @param jCCFlipButton 按钮类型
*/
public abstract void openButton(JCCTalkingConfig.JCCToolBarButtons jCCFlipButton);
/**
* 修改当前按钮为关闭状态
* @param jCCFlipButton 按钮类型
*/
public abstract void closeButton(JCCTalkingConfig.JCCToolBarButtons jCCFlipButton);
/**
* 设置当前点击状态监听
* @param jCCFlipButton 按钮类型
* @param onClickStateListener 点击状态监听
*/
public abstract void setJRTCOnClickStateListener(JCCTalkingConfig.JCCToolBarButtons jCCFlipButton, JRTCOnClickStateListener onClickStateListener);
} }
/** /**
......
...@@ -31,6 +31,7 @@ import com.juphoon.rtc.JRTCRoomParticipant; ...@@ -31,6 +31,7 @@ import com.juphoon.rtc.JRTCRoomParticipant;
import com.juphoon.rtc.kit.IJRTCGuestCallback; import com.juphoon.rtc.kit.IJRTCGuestCallback;
import com.juphoon.rtc.kit.JRTCEngineConfig; import com.juphoon.rtc.kit.JRTCEngineConfig;
import com.juphoon.rtc.kit.JRTCGuestEngine; import com.juphoon.rtc.kit.JRTCGuestEngine;
import com.juphoon.rtc.kit.view.function.JRTCOnClickStateListener;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
...@@ -606,4 +607,30 @@ class JCCGuestManagerImpl extends JCCGuestManager implements IJRTCGuestCallback ...@@ -606,4 +607,30 @@ class JCCGuestManagerImpl extends JCCGuestManager implements IJRTCGuestCallback
} }
} }
} }
/**
* 修改当前按钮为开启状态
*/
public void openButton(JCCTalkingConfig.JCCToolBarButtons jCCFlipButton){
PresenterManager.getInstance().getTalkPresenter().openButton(jCCFlipButton);
}
/**
* 修改当前按钮为关闭状态
*/
public void closeButton(JCCTalkingConfig.JCCToolBarButtons jCCFlipButton){
PresenterManager.getInstance().getTalkPresenter().closeButton(jCCFlipButton);
}
/**
* 设置当前点击状态监听
* @param onClickStateListener
*/
public void setJRTCOnClickStateListener(JCCTalkingConfig.JCCToolBarButtons jCCFlipButton,JRTCOnClickStateListener onClickStateListener){
if (jCCFlipButton == JCCTalkingConfig.JCCToolBarButtons.JCCMicButton){// 麦克风按钮
PresenterManager.getInstance().getTalkPresenter().setJRTCOnClickStateListener(jCCFlipButton,onClickStateListener);
}else if (jCCFlipButton == JCCTalkingConfig.JCCToolBarButtons.JCCCameraButton){ // 摄像头按钮
PresenterManager.getInstance().getTalkPresenter().setJRTCOnClickStateListener(jCCFlipButton,onClickStateListener);
}
}
} }
package com.juphoon.rtc.kit.view.function;
public interface JRTCOnClickStateListener {
/**
* true 开启 false关闭
* @param state
*/
public void onClickState(Boolean state);
}
...@@ -23,6 +23,7 @@ import com.juphoon.rtc.kit.model.config.JRTCTapViewModel; ...@@ -23,6 +23,7 @@ import com.juphoon.rtc.kit.model.config.JRTCTapViewModel;
import com.juphoon.rtc.kit.util.JRTCClickProxy; import com.juphoon.rtc.kit.util.JRTCClickProxy;
import com.juphoon.rtc.kit.util.JRTCScreenUtil; import com.juphoon.rtc.kit.util.JRTCScreenUtil;
import com.juphoon.rtc.kit.view.base.JRTCRelativeLayout; import com.juphoon.rtc.kit.view.base.JRTCRelativeLayout;
import com.juphoon.rtc.kit.view.function.JRTCOnClickStateListener;
import com.juphoon.rtc.kit.view.toast.JRTCToastManager; import com.juphoon.rtc.kit.view.toast.JRTCToastManager;
public class JRTCCameraView<T extends JRTCCommonEngine<F>, F extends IJRTCCommonEngineCallback> extends JRTCRelativeLayout<T, F> implements View.OnClickListener { public class JRTCCameraView<T extends JRTCCommonEngine<F>, F extends IJRTCCommonEngineCallback> extends JRTCRelativeLayout<T, F> implements View.OnClickListener {
...@@ -33,6 +34,7 @@ public class JRTCCameraView<T extends JRTCCommonEngine<F>, F extends IJRTCCommon ...@@ -33,6 +34,7 @@ public class JRTCCameraView<T extends JRTCCommonEngine<F>, F extends IJRTCCommon
private GradientDrawable mViewGround; private GradientDrawable mViewGround;
private JRTCTapViewModel mTapViewModel; private JRTCTapViewModel mTapViewModel;
private JRTCFlipView<?, ?> mFlipView; private JRTCFlipView<?, ?> mFlipView;
private JRTCOnClickStateListener onClickStateListener;
public JRTCCameraView(Context context) { public JRTCCameraView(Context context) {
super(context); super(context);
...@@ -82,6 +84,34 @@ public class JRTCCameraView<T extends JRTCCommonEngine<F>, F extends IJRTCCommon ...@@ -82,6 +84,34 @@ public class JRTCCameraView<T extends JRTCCommonEngine<F>, F extends IJRTCCommon
mWholeView.setOnClickListener(new JRTCClickProxy(getContext(), this)); mWholeView.setOnClickListener(new JRTCClickProxy(getContext(), this));
} }
/**
* 修改当前按钮为开启状态
*/
public void open(){
int state = mTapViewModel.getTapViewState();
if(state == JRTCGlobalDefine.TAP_VIEW_STATE_CLOSED){
mWholeView.performClick();
}
}
/**
* 修改当前按钮为关闭状态
*/
public void close(){
int state = mTapViewModel.getTapViewState();
if(state == JRTCGlobalDefine.TAP_VIEW_STATE_OPEN){
mWholeView.performClick();
}
}
/**
* 设置当前点击状态监听
* @param onClickStateListener
*/
public void setOnClickListener(JRTCOnClickStateListener onClickStateListener){
this.onClickStateListener= onClickStateListener;
}
@Override @Override
public void onClick(View view) { public void onClick(View view) {
if (mEngine != null) { if (mEngine != null) {
...@@ -92,12 +122,14 @@ public class JRTCCameraView<T extends JRTCCommonEngine<F>, F extends IJRTCCommon ...@@ -92,12 +122,14 @@ public class JRTCCameraView<T extends JRTCCommonEngine<F>, F extends IJRTCCommon
isEnableFlip(false); isEnableFlip(false);
mTapViewModel.setTapViewState(JRTCGlobalDefine.TAP_VIEW_STATE_CLOSED); mTapViewModel.setTapViewState(JRTCGlobalDefine.TAP_VIEW_STATE_CLOSED);
JRTCToastManager.getInstance().showMessage(getContext(), getContext().getString(R.string.kit_camera_is_off)); JRTCToastManager.getInstance().showMessage(getContext(), getContext().getString(R.string.kit_camera_is_off));
onClickStateListener.onClickState(false);
} else if (state == JRTCGlobalDefine.TAP_VIEW_STATE_CLOSED) { } else if (state == JRTCGlobalDefine.TAP_VIEW_STATE_CLOSED) {
mEngine.startCamera(); mEngine.startCamera();
mEngine.enableUploadVideoStream(true); mEngine.enableUploadVideoStream(true);
isEnableFlip(true); isEnableFlip(true);
mTapViewModel.setTapViewState(JRTCGlobalDefine.TAP_VIEW_STATE_OPEN); mTapViewModel.setTapViewState(JRTCGlobalDefine.TAP_VIEW_STATE_OPEN);
JRTCToastManager.getInstance().showMessage(getContext(), getContext().getString(R.string.kit_camera_is_on)); JRTCToastManager.getInstance().showMessage(getContext(), getContext().getString(R.string.kit_camera_is_on));
onClickStateListener.onClickState(true);
} }
tabViewState(); tabViewState();
} }
......
...@@ -23,6 +23,7 @@ import com.juphoon.rtc.kit.model.config.JRTCTapViewModel; ...@@ -23,6 +23,7 @@ import com.juphoon.rtc.kit.model.config.JRTCTapViewModel;
import com.juphoon.rtc.kit.util.JRTCClickProxy; import com.juphoon.rtc.kit.util.JRTCClickProxy;
import com.juphoon.rtc.kit.util.JRTCScreenUtil; import com.juphoon.rtc.kit.util.JRTCScreenUtil;
import com.juphoon.rtc.kit.view.base.JRTCRelativeLayout; import com.juphoon.rtc.kit.view.base.JRTCRelativeLayout;
import com.juphoon.rtc.kit.view.function.JRTCOnClickStateListener;
import com.juphoon.rtc.kit.view.toast.JRTCToastManager; import com.juphoon.rtc.kit.view.toast.JRTCToastManager;
public class JRTCMicView<T extends JRTCCommonEngine<F>, F extends IJRTCCommonEngineCallback> extends JRTCRelativeLayout<T, F> implements View.OnClickListener { public class JRTCMicView<T extends JRTCCommonEngine<F>, F extends IJRTCCommonEngineCallback> extends JRTCRelativeLayout<T, F> implements View.OnClickListener {
...@@ -34,6 +35,7 @@ public class JRTCMicView<T extends JRTCCommonEngine<F>, F extends IJRTCCommonEng ...@@ -34,6 +35,7 @@ public class JRTCMicView<T extends JRTCCommonEngine<F>, F extends IJRTCCommonEng
private GradientDrawable mViewGround; private GradientDrawable mViewGround;
JRTCTapViewModel mTapViewModel; JRTCTapViewModel mTapViewModel;
private JRTCOnClickStateListener onClickStateListener;
public JRTCMicView(Context context) { public JRTCMicView(Context context) {
super(context); super(context);
...@@ -82,6 +84,32 @@ public class JRTCMicView<T extends JRTCCommonEngine<F>, F extends IJRTCCommonEng ...@@ -82,6 +84,32 @@ public class JRTCMicView<T extends JRTCCommonEngine<F>, F extends IJRTCCommonEng
mWholeView.setOnClickListener(new JRTCClickProxy(getContext(), this)); mWholeView.setOnClickListener(new JRTCClickProxy(getContext(), this));
} }
/**
* 修改当前按钮为开启状态
*/
public void open(){
int state = mTapViewModel.getTapViewState();
if(state == JRTCGlobalDefine.TAP_VIEW_STATE_CLOSED){
mWholeView.performClick();
}
}
/**
* 修改当前按钮为关闭状态
*/
public void close(){
int state = mTapViewModel.getTapViewState();
if(state == JRTCGlobalDefine.TAP_VIEW_STATE_OPEN){
mWholeView.performClick();
}
}
/**
* 设置当前点击状态监听
* @param onClickStateListener
*/
public void setOnClickListener(JRTCOnClickStateListener onClickStateListener){
this.onClickStateListener= onClickStateListener;
}
@Override @Override
public void onClick(View view) { public void onClick(View view) {
...@@ -91,10 +119,12 @@ public class JRTCMicView<T extends JRTCCommonEngine<F>, F extends IJRTCCommonEng ...@@ -91,10 +119,12 @@ public class JRTCMicView<T extends JRTCCommonEngine<F>, F extends IJRTCCommonEng
JRTCToastManager.getInstance().showMessage(getContext(),getContext().getString(R.string.kit_mic_is_off)); JRTCToastManager.getInstance().showMessage(getContext(),getContext().getString(R.string.kit_mic_is_off));
mEngine.enableUploadAudioStream(false); mEngine.enableUploadAudioStream(false);
mTapViewModel.setTapViewState(JRTCGlobalDefine.TAP_VIEW_STATE_CLOSED); mTapViewModel.setTapViewState(JRTCGlobalDefine.TAP_VIEW_STATE_CLOSED);
onClickStateListener.onClickState(false);
} else if (state == JRTCGlobalDefine.TAP_VIEW_STATE_CLOSED) { } else if (state == JRTCGlobalDefine.TAP_VIEW_STATE_CLOSED) {
mEngine.enableUploadAudioStream(true); mEngine.enableUploadAudioStream(true);
mTapViewModel.setTapViewState(JRTCGlobalDefine.TAP_VIEW_STATE_OPEN); mTapViewModel.setTapViewState(JRTCGlobalDefine.TAP_VIEW_STATE_OPEN);
JRTCToastManager.getInstance().showMessage(getContext(), getContext().getString(R.string.kit_mic_is_on)); JRTCToastManager.getInstance().showMessage(getContext(), getContext().getString(R.string.kit_mic_is_on));
onClickStateListener.onClickState(true);
} }
tabViewState(); tabViewState();
} }
......
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