如何在音频通话期间启动视频



使用 Sinch SDK

1(我进行了视频通话。我的 GUI 中有一个按钮。我想通过单击按钮关闭视频以使通话像音频通话一样。

我正在开始视频通话

Call call = getSinchServiceInterface().callUserVideo("user1");
String callId = call.getCallId();
Intent callScreen = new Intent(this, RunningVideoCallActivity.class);
callScreen.putExtra(SinchService.CALL_ID, callId);
startActivity(callScreen);

2(我打了个音频电话。我的 GUI 中有一个按钮。我想通过单击按钮来开始视频,以使通话像视频通话一样。

我正在开始音频通话

Call call = getSinchServiceInterface().callUser("user1");
String callId = call.getCallId();
Intent callScreen = new Intent(this, RunningAudioCallActivity.class);
callScreen.putExtra(SinchService.CALL_ID, callId);
startActivity(callScreen);

3(如何在辛奇中将通话静音。

4(如何在辛奇举行电话。请帮忙。

您无法在音频通话中启动视频,您可以做的是始终开始音频通话并在开始时暂停视频以使其看起来像音频通话。我们没有保留功能。

若要静音,请在音频控制器上使用静音和取消静音

希望这对未来的读者有用。

在正在进行的通话中,您真的无法在callUserVideocallUser之间切换。 但是还有另一种方法可以实现该功能。这就是Sinch 支持团队所说的,

您可以暂停视频

并仅执行语音,因此所有通话都是视频,您可以暂停/恢复视频轨道

所以这意味着,您必须始终以callUserVideo,如果您想在音频和视频之间切换。 因此,要在音频和视频之间切换,您需要做这样的事情。在处理传入呼叫客户端的页面中。

// function to be called when you want to toggle to video call
private void resumeVideo() {
if (mVideoCall != null) {
mVideoCall.resumeVideo();
}
}
// enable speaker
// add remote and local video views
private void resumeVideoCallback() {
mAudioCallToggle.setText("Switch to AudioCall");
if (getSinchServiceInterface() != null && getSinchServiceInterface().getAudioController() != null) {
getSinchServiceInterface().getAudioController().enableSpeaker();
}
addLocalView();
addRemoteView();
}
// function to be called when you want to toggle to audio call
private void pauseVideo() {
if (mVideoCall != null) {
mVideoCall.pauseVideo();
}
}
// disable speaker
// remove remote and local video views
private void pauseVideoCallback() {
mAudioCallToggle.setText("Switch to VideoCall");
if (getSinchServiceInterface() != null && getSinchServiceInterface().getAudioController() != null) {
getSinchServiceInterface().getAudioController().disableSpeaker();
}
removeVideoViews();
}

在您的视频通话侦听器上,像这样实现

.............
.............
other implementations
.............
.............
@Override
public void onVideoTrackAdded(Call call) {
Log.d(TAG, "Video track added");
addRemoteView();
}
@Override
public void onVideoTrackPaused(Call call) {
pauseVideoCallback();
}
@Override
public void onVideoTrackResumed(Call call) {
resumeVideoCallback();
}

最后要在音频/视频之间切换,请执行以下操作

new OnClickListener() {
@Override
public void onClick(View v) {
if (mAudioCallToggle.getTag().equals("Audio")) {
mAudioCallToggle.setTag("Video");
pauseVideo();
} else {
mAudioCallToggle.setTag("Audio");
resumeVideo();
}
}
}

最新更新