Abdallah Alaraby
Abdallah Alaraby

Reputation: 2249

Automatically show the currently talking user in OpenTok

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());
}
...

Upvotes: 4

Views: 636

Answers (1)

HyLian
HyLian

Reputation: 5093

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

Upvotes: 2

Related Questions