4

I'm currently working on an Android app that enables users to group-chat with each other via OpenTok API. And I want to add a feature to the app that automatically detects which user is talking right now and show his video to the others and minimize the other users' videos until someone else talks.

I cannot find such feature in OpenTok so I was wondering if there's a workaround.

private void joinVideoCall(String sessionId, String sessionToken) {    
    session = new Session.Builder(activity, OPENTOK_API_KEY, sessionId).build();
    session.setSessionListener(this);
    session.connect(sessionToken);
}

@Override
public void onConnected(Session session) {
    publisher = new Publisher.Builder(activity).build();
    publisher.setPublisherListener(this);

    publisherView.addView(publisher.getView());
    session.publish(publisher);
}

@Override
public void onStreamReceived(Session session, Stream stream) {
    subscriber = new Subscriber.Builder(activity, stream).build();
    session.subscribe(subscriber);
    subscriberView.addView(subscriber.getView());
}
...
Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
Abdallah Alaraby
  • 2,222
  • 2
  • 18
  • 30

1 Answers1

2

In order to do that, you'll need to use a custom audio driver that will detect the audio levels.

Take a look to this sample: https://github.com/opentok/opentok-android-sdk-samples/tree/master/Custom-Audio-Driver

And also, take a look to the API documentation: https://tokbox.com/developer/sdks/android/reference/com/opentok/android/BaseAudioDevice.html

HyLian
  • 4,999
  • 5
  • 33
  • 40