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

时间:2017-07-24 11:32:58

标签: sinch videochat video-conferencing android-sinch-api

使用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)如何在Sinch中静音。

4)如何在Sinch中接听电话。请帮忙。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

在通话过程中,您实际上无法在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();
        }
    }
}