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

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

parent babe189f
......@@ -57,6 +57,9 @@ class PresenterManager {
this.mTalkPresenter = talkPresenter;
}
public TalkPresenter<IJRTCCommonEngineCallback> getTalkPresenter() {
return this.mTalkPresenter;
}
public void setCallPresenter(CallPresenter callPresenter) {
this.mCallPresenter = callPresenter;
}
......
......@@ -50,6 +50,7 @@ import com.juphoon.rtc.kit.JRTCCommonEngine;
import com.juphoon.rtc.kit.JRTCGlobalDefine;
import com.juphoon.rtc.kit.chatwindow.JRTCChatDetailLayout;
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.JRTCScrawlView;
import com.juphoon.rtc.kit.view.function.tap.JRTCCameraView;
......@@ -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;
import com.juphoon.rtc.kit.IJRTCGuestCallback;
import com.juphoon.rtc.kit.JRTCGuestEngine;
import com.juphoon.rtc.kit.view.function.JRTCOnClickStateListener;
import java.util.List;
......@@ -86,6 +87,25 @@ public abstract class JCCGuestManager extends JCCCommonManagerImpl<IJRTCGuestCal
*/
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;
import com.juphoon.rtc.kit.IJRTCGuestCallback;
import com.juphoon.rtc.kit.JRTCEngineConfig;
import com.juphoon.rtc.kit.JRTCGuestEngine;
import com.juphoon.rtc.kit.view.function.JRTCOnClickStateListener;
import org.json.JSONException;
import org.json.JSONObject;
......@@ -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;
import com.juphoon.rtc.kit.util.JRTCClickProxy;
import com.juphoon.rtc.kit.util.JRTCScreenUtil;
import com.juphoon.rtc.kit.view.base.JRTCRelativeLayout;
import com.juphoon.rtc.kit.view.function.JRTCOnClickStateListener;
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 {
......@@ -33,6 +34,7 @@ public class JRTCCameraView<T extends JRTCCommonEngine<F>, F extends IJRTCCommon
private GradientDrawable mViewGround;
private JRTCTapViewModel mTapViewModel;
private JRTCFlipView<?, ?> mFlipView;
private JRTCOnClickStateListener onClickStateListener;
public JRTCCameraView(Context context) {
super(context);
......@@ -82,6 +84,34 @@ public class JRTCCameraView<T extends JRTCCommonEngine<F>, F extends IJRTCCommon
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
public void onClick(View view) {
if (mEngine != null) {
......@@ -92,12 +122,14 @@ public class JRTCCameraView<T extends JRTCCommonEngine<F>, F extends IJRTCCommon
isEnableFlip(false);
mTapViewModel.setTapViewState(JRTCGlobalDefine.TAP_VIEW_STATE_CLOSED);
JRTCToastManager.getInstance().showMessage(getContext(), getContext().getString(R.string.kit_camera_is_off));
onClickStateListener.onClickState(false);
} else if (state == JRTCGlobalDefine.TAP_VIEW_STATE_CLOSED) {
mEngine.startCamera();
mEngine.enableUploadVideoStream(true);
isEnableFlip(true);
mTapViewModel.setTapViewState(JRTCGlobalDefine.TAP_VIEW_STATE_OPEN);
JRTCToastManager.getInstance().showMessage(getContext(), getContext().getString(R.string.kit_camera_is_on));
onClickStateListener.onClickState(true);
}
tabViewState();
}
......
......@@ -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.JRTCScreenUtil;
import com.juphoon.rtc.kit.view.base.JRTCRelativeLayout;
import com.juphoon.rtc.kit.view.function.JRTCOnClickStateListener;
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 {
......@@ -34,6 +35,7 @@ public class JRTCMicView<T extends JRTCCommonEngine<F>, F extends IJRTCCommonEng
private GradientDrawable mViewGround;
JRTCTapViewModel mTapViewModel;
private JRTCOnClickStateListener onClickStateListener;
public JRTCMicView(Context context) {
super(context);
......@@ -82,6 +84,32 @@ public class JRTCMicView<T extends JRTCCommonEngine<F>, F extends IJRTCCommonEng
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
public void onClick(View view) {
......@@ -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));
mEngine.enableUploadAudioStream(false);
mTapViewModel.setTapViewState(JRTCGlobalDefine.TAP_VIEW_STATE_CLOSED);
onClickStateListener.onClickState(false);
} else if (state == JRTCGlobalDefine.TAP_VIEW_STATE_CLOSED) {
mEngine.enableUploadAudioStream(true);
mTapViewModel.setTapViewState(JRTCGlobalDefine.TAP_VIEW_STATE_OPEN);
JRTCToastManager.getInstance().showMessage(getContext(), getContext().getString(R.string.kit_mic_is_on));
onClickStateListener.onClickState(true);
}
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