修复开播图片后摄像头卡住问题
This commit is contained in:
parent
a454a97c58
commit
d63cba7db1
@ -5,13 +5,16 @@ import android.content.ContentResolver;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.drawable.BitmapDrawable;
|
import android.graphics.drawable.BitmapDrawable;
|
||||||
|
import android.hardware.camera2.CameraManager;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.view.SurfaceView;
|
import android.view.SurfaceView;
|
||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
import androidx.core.content.res.ResourcesCompat;
|
import androidx.core.content.res.ResourcesCompat;
|
||||||
|
|
||||||
|
import com.blankj.utilcode.util.LogUtils;
|
||||||
import com.yunbao.common.CommonAppConfig;
|
import com.yunbao.common.CommonAppConfig;
|
||||||
import com.yunbao.common.CommonAppContext;
|
import com.yunbao.common.CommonAppContext;
|
||||||
import com.yunbao.common.bean.SwTokenModel;
|
import com.yunbao.common.bean.SwTokenModel;
|
||||||
@ -69,6 +72,7 @@ public class SWManager extends BaseCacheManager {
|
|||||||
private ImageTrackOptions imageTrackOptions = null;
|
private ImageTrackOptions imageTrackOptions = null;
|
||||||
|
|
||||||
private onDrPkJoinSuccessListener onDrPkJoinSuccessListener;
|
private onDrPkJoinSuccessListener onDrPkJoinSuccessListener;
|
||||||
|
String openCameraId = "1";
|
||||||
|
|
||||||
public void setOnDrPkJoinSuccessListener(SWManager.onDrPkJoinSuccessListener onDrPkJoinSuccessListener) {
|
public void setOnDrPkJoinSuccessListener(SWManager.onDrPkJoinSuccessListener onDrPkJoinSuccessListener) {
|
||||||
this.onDrPkJoinSuccessListener = onDrPkJoinSuccessListener;
|
this.onDrPkJoinSuccessListener = onDrPkJoinSuccessListener;
|
||||||
@ -253,7 +257,20 @@ public class SWManager extends BaseCacheManager {
|
|||||||
*/
|
*/
|
||||||
public void switchCamera() {
|
public void switchCamera() {
|
||||||
if (mRtcEngine != null) {
|
if (mRtcEngine != null) {
|
||||||
mRtcEngine.switchCamera();
|
if (openCameraId.equals("0")) {
|
||||||
|
mRtcEngine.switchCamera("1");
|
||||||
|
openCameraId = "1";
|
||||||
|
} else {
|
||||||
|
mRtcEngine.switchCamera("0");
|
||||||
|
openCameraId = "0";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void resetCamera() {
|
||||||
|
LogUtils.e("重置摄像头", openCameraId);
|
||||||
|
if (mRtcEngine != null && !TextUtils.isEmpty(openCameraId)) {
|
||||||
|
mRtcEngine.switchCamera(openCameraId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -525,6 +542,9 @@ public class SWManager extends BaseCacheManager {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void release() {
|
||||||
|
}
|
||||||
|
|
||||||
public interface onRtcEngineListener {
|
public interface onRtcEngineListener {
|
||||||
void onOpenSuccess(String channel, int uid);
|
void onOpenSuccess(String channel, int uid);
|
||||||
|
|
||||||
|
@ -370,7 +370,7 @@ public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITX
|
|||||||
}
|
}
|
||||||
switch (temp) {
|
switch (temp) {
|
||||||
case 2:
|
case 2:
|
||||||
swManager.joinChannelDrEx(dr2_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, uid, SWAuManager.getChannelName(uid),temp);
|
swManager.joinChannelDrEx(dr2_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, uid, SWAuManager.getChannelName(uid), temp);
|
||||||
swManager.updateMyChannelView(dr1_preview);
|
swManager.updateMyChannelView(dr1_preview);
|
||||||
mBigContainer.removeAllViews();
|
mBigContainer.removeAllViews();
|
||||||
|
|
||||||
@ -379,7 +379,7 @@ public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITX
|
|||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
drpkUid3 = uid;
|
drpkUid3 = uid;
|
||||||
swManager.joinChannelDrEx(dr4_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, uid, SWAuManager.getChannelName(uid),temp);
|
swManager.joinChannelDrEx(dr4_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, uid, SWAuManager.getChannelName(uid), temp);
|
||||||
dr3_preview.setVisibility(View.GONE);
|
dr3_preview.setVisibility(View.GONE);
|
||||||
dr4_preview.setVisibility(View.VISIBLE);
|
dr4_preview.setVisibility(View.VISIBLE);
|
||||||
break;
|
break;
|
||||||
@ -387,9 +387,9 @@ public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITX
|
|||||||
dr3_preview.setVisibility(View.VISIBLE);
|
dr3_preview.setVisibility(View.VISIBLE);
|
||||||
//先退出这个主播的直播间,在进入该直播间,(视图问题暂时這樣處理)
|
//先退出这个主播的直播间,在进入该直播间,(视图问题暂时這樣處理)
|
||||||
swManager.exitChannelToUid(Integer.parseInt(CommonAppConfig.getInstance().getUid()), drpkUid3);
|
swManager.exitChannelToUid(Integer.parseInt(CommonAppConfig.getInstance().getUid()), drpkUid3);
|
||||||
swManager.joinChannelDrEx(dr3_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, drpkUid3, SWAuManager.getChannelName(drpkUid3),temp);
|
swManager.joinChannelDrEx(dr3_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, drpkUid3, SWAuManager.getChannelName(drpkUid3), temp);
|
||||||
|
|
||||||
swManager.joinChannelDrEx(dr4_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, uid, SWAuManager.getChannelName(uid),temp);
|
swManager.joinChannelDrEx(dr4_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, uid, SWAuManager.getChannelName(uid), temp);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
dr_pk_view.setVisibility(View.VISIBLE);
|
dr_pk_view.setVisibility(View.VISIBLE);
|
||||||
@ -399,7 +399,7 @@ public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITX
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void anchorClose() {
|
public void anchorClose() {
|
||||||
swManager.exitChannelToUid(Integer.parseInt(CommonAppConfig.getInstance().getUid()),pkUid1);
|
swManager.exitChannelToUid(Integer.parseInt(CommonAppConfig.getInstance().getUid()), pkUid1);
|
||||||
swManager.updateMyChannelView((FrameLayout) mBigContainer); //用户主动断开连麦再退出画面
|
swManager.updateMyChannelView((FrameLayout) mBigContainer); //用户主动断开连麦再退出画面
|
||||||
mPkContainer.setVisibility(View.GONE);
|
mPkContainer.setVisibility(View.GONE);
|
||||||
pkUid1 = null;
|
pkUid1 = null;
|
||||||
@ -504,8 +504,9 @@ public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITX
|
|||||||
public void onResume() {
|
public void onResume() {
|
||||||
mPaused = false;
|
mPaused = false;
|
||||||
Log.i("摄像头", "onResume: " + isNeedOpenCamera);
|
Log.i("摄像头", "onResume: " + isNeedOpenCamera);
|
||||||
|
swManager.resetCamera();
|
||||||
if (isNeedOpenCamera) {
|
if (isNeedOpenCamera) {
|
||||||
RCRTCEngine.getInstance().getDefaultVideoStream().startCamera(new IRCRTCResultDataCallback<Boolean>() {
|
/*RCRTCEngine.getInstance().getDefaultVideoStream().startCamera(new IRCRTCResultDataCallback<Boolean>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(Boolean data) {
|
public void onSuccess(Boolean data) {
|
||||||
//设置摄像头最大缩放比例
|
//设置摄像头最大缩放比例
|
||||||
@ -519,7 +520,7 @@ public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITX
|
|||||||
public void onFailed(RTCErrorCode errorCode) {
|
public void onFailed(RTCErrorCode errorCode) {
|
||||||
Log.i("摄像头", "onFailed: 打开摄像头失败 " + errorCode);
|
Log.i("摄像头", "onFailed: 打开摄像头失败 " + errorCode);
|
||||||
}
|
}
|
||||||
});
|
});*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -550,6 +551,7 @@ public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITX
|
|||||||
super.release();
|
super.release();
|
||||||
Bus.getOff(this);
|
Bus.getOff(this);
|
||||||
onDestroy();
|
onDestroy();
|
||||||
|
SWManager.get().release();
|
||||||
LiveHttpUtil.cancel(LiveHttpConsts.LINK_MIC_TX_MIX_STREAM);
|
LiveHttpUtil.cancel(LiveHttpConsts.LINK_MIC_TX_MIX_STREAM);
|
||||||
rtcRoom = null;
|
rtcRoom = null;
|
||||||
}
|
}
|
||||||
@ -667,17 +669,20 @@ public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITX
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void closeLive(){
|
public void closeLive() {
|
||||||
if (swManager != null) {
|
if (swManager != null) {
|
||||||
swManager.exitChannelAll();
|
swManager.exitChannelAll();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public interface onDrPkJoinSuccessListener{
|
public interface onDrPkJoinSuccessListener {
|
||||||
void joinSuccess1();
|
void joinSuccess1();
|
||||||
|
|
||||||
void joinSuccess2();
|
void joinSuccess2();
|
||||||
|
|
||||||
void joinSuccess3();
|
void joinSuccess3();
|
||||||
|
|
||||||
void joinSuccess4();
|
void joinSuccess4();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user