Android sinch库的远程视图,在加载项视图上显示黑色区域
在我的应用程序中,我正在实现视频聊天,为此我正在使用sinch客户端,我正在参考官方文档提供的以下链接Android sinch库的远程视图,在加载项视图上显示黑色区域,android,sinch,Android,Sinch,在我的应用程序中,我正在实现视频聊天,为此我正在使用sinch客户端,我正在参考官方文档提供的以下链接 https://www.sinch.com/docs/video/android/#videocalling 使用下面的代码,我将远程视图添加到布局中 @Override public void onVideoTrackAdded(Call call) { Log.e("test","video track added is called now");
https://www.sinch.com/docs/video/android/#videocalling
使用下面的代码,我将远程视图添加到布局中
@Override
public void onVideoTrackAdded(Call call) {
Log.e("test","video track added is called now");
SinchClient sinchClient = getSinchServiceInterface().getSinchClient();
if (sinchClient != null) {
VideoController videoController = sinchClient.getVideoController();
View myPreview = videoController.getLocalView();
View remoteView = videoController.getRemoteView();
mUpperLinearLayout.addView(myPreview);
mLowerLinearLayout.addView(remoteView);
}
}
我已经将我的UI分为两个线性布局,分别是upper layout和lower layout,我正在将远程视图添加到线性布局中,如文档中所述。但我在成功连接视频通话时看到了黑色或空白视图。为什么我会遗漏任何内容?我在log cat中观察到的另一个错误如下所述
CameraEnumerator: java.lang.RuntimeException: Fail to connect to camera service
我在谷歌上搜索了很多,并尝试了下面提到的不同链接
CameraEnumerator: java.lang.RuntimeException: Fail to connect to camera service
但是没有运气。有什么帮助吗
我正在使用下面的代码进行许可
private void callVideo() {
try {
Call call = getSinchServiceInterface().callVideoUser(mVoipContact.getUserName());
if (call == null) {
// Service failed for some reason, show a Toast and abort
Toast.makeText(getApplicationContext(), getString(R.string.txt_service_not_started) + getString(R.string.txt_placing_call), Toast.LENGTH_LONG).show();
return;
}
String callId = call.getCallId();
Intent callScreen = new Intent(getApplicationContext(), VideoCallScreenActivity.class);
callScreen.putExtra(VoipConstants.CALL_ID, callId);
startActivity(callScreen);
} catch (MissingPermissionException e) {
ActivityCompat.requestPermissions(MessagingActivity.this, new String[]{e.getRequiredPermission()}, REQUEST_CODE_PERMISSION_CALL);
}
}
现在我可以看到下面的日志cat错误
VideoCapturerAndroid: Camera freezed: Camera failure.
像这样
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, 50);
} else {
callVideo();
}
对于其他错误,请尝试在try Catch或中添加此
setPreviewTexture()
,只需删除此行即可当远程视图处于活动状态时,您正在添加localView。当sinch客户端就绪时,尝试添加localView。在sinch中,如果本地视图不清晰,则不会显示远程视图
我不知道您的代码流,所以我不能说您必须在哪里添加localView
我希望,它会对你有所帮助。为什么你的fyp还没有结束?对不起,我没听清楚你有一次告诉我这是你的fyp,老师们要求提供一些功能,所以我认为它的FYPnoi现在正在工作,这是项目功能,我现在被困得很厉害好,您的清单中有摄像头权限吗?尝试过了,但现在我可以在日志中看到VideoCapturerAndroid:camera冻结:camera失败。在哪里使用setPreviewTexture()方法?