Как запустить видео во время аудиозвонка в sinch

Использование Синч SDK

1) я сделал видеозвонок. у меня есть кнопка в моем графическом интерфейсе. я хочу отключить видео, нажав кнопку, чтобы сделать вызов как аудиовызов.

я начинаю видеозвонок как

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) я сделал аудиозвонок. у меня есть кнопка в моем графическом интерфейсе. я хочу начать видео, нажав кнопку, чтобы сделать вызов как видеозвонок.

я начинаю аудиозвонок как

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. Пожалуйста помоги.


person Beginner    schedule 24.07.2017    source источник


Ответы (2)


Вы не можете запустить видео во время аудиовызова, вы можете всегда начинать аудиовызов и приостанавливать видео в начале, чтобы оно выглядело как аудиовызов. У нас нет функции удержания.

Для отключения звука используйте Mute и Unmute на аудиоконтроллере.

person cjensen    schedule 24.07.2017
comment
я хочу отключить видео во время видеозвонка. Как мне это сделать. - person Beginner; 25.07.2017
comment
а также хочу включить видео во время аудиозвонка - person Beginner; 25.07.2017

Надеюсь, это будет полезно для будущих читателей.

Вы действительно не можете переключаться между callUserVideo и callUser во время текущего вызова. Но есть альтернативный способ достижения функциональности. Вот что говорит служба поддержки 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();
        }
    }
}
person Sanoop Surendran    schedule 22.10.2018