在 OpenTok 中自动显示当前正在通话的用户

Automatically show the currently talking user in OpenTok

我目前正在开发一个 Android 应用程序,该应用程序使用户能够通过 OpenTok API 进行群聊。我想在应用程序中添加一项功能,自动检测哪个用户正在说话,并将他的视频显示给其他人,并最小化其他用户的视频,直到有人说话。

我在 OpenTok 中找不到这样的功能,所以我想知道是否有解决方法。

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

为此,您需要使用可检测音频电平的自定义音频驱动程序。

看看这个示例:https://github.com/opentok/opentok-android-sdk-samples/tree/master/Custom-Audio-Driver

此外,请查看 API 文档:https://tokbox.com/developer/sdks/android/reference/com/opentok/android/BaseAudioDevice.html